Web Analytics

ChinaTravel

⭐ 0 stars Italian by Adopos

ChinaTravel: Un benchmark reale per agenti linguistici nella pianificazione di viaggi in Cina

Codice ufficiale per l'articolo "ChinaTravel: Un benchmark reale per agenti linguistici nella pianificazione di viaggi in Cina".

Pagina Web Articolo Dataset(Huggingface) Competizione(TPC@IJCAI2025) Competizione(TPC@AIC2025)

🏆 Sfida di Pianificazione Viaggi IJCAI 2025 (TPC@IJCAI)

Siamo orgogliosi di annunciare che ChinaTravel è stato selezionato come benchmark ufficiale per la Travel Planning Challenge (TPC) @ IJCAI 2025!

Sito ufficiale della competizione: https://chinatravel-competition.github.io/IJCAI2025/

I partecipanti sono invitati a sviluppare nuovi agenti in grado di affrontare scenari reali di pianificazione viaggi sotto vincoli complessi. Questa competizione metterà in mostra approcci all'avanguardia nella ricerca sugli agenti linguistici.

📝 ChangeLog

2025.09

2025.06

2025.05

2025.04

Implementazione della pipeline LLM-modulo con un verificatore simbolico di ground-truth. Basato sulla metodologia da: Articolo: Robust Planning with Compound LLM Architectures: An LLM-Modulo Approach Repository: https://github.com/Atharva-Gundawar/LLM-Modulo-prompts

🚀 Avvio Rapido

⚙️ Configurazione

conda create -n chinatravel python=3.9  
conda activate chinatravel  
pip install -r requirements.txt  

Link per il download: Google Drive, NJU Drive

bash download_llm.sh

wget https://cdn.deepseek.com/api-docs/deepseek_v3_tokenizer.zip -P chinatravel/local_llm/
unzip chinatravel/local_llm/deepseek_v3_tokenizer.zip -d chinatravel/local_llm/

▶️ Esecuzione

Supportiamo deepseek (API ufficiale di deepseek), gpt-4o (chatgpt-4o-latest), glm4-plus e inferenze locali con Qwen (Qwen3-8B), llama, mistral (Mistral-7B-Instruct-v0.3), ecc.

export OPENAI_API_KEY=""

python run_exp.py --splits easy --agent LLMNeSy --llm deepseek --oracle_translation python run_exp.py --splits medium --agent LLMNeSy --llm deepseek --oracle_translation python run_exp.py --splits human --agent LLMNeSy --llm deepseek --oracle_translation

python run_exp.py --splits human --agent LLMNeSy --llm Qwen3-8B --oracle_translation

python run_exp.py --splits human --agent LLMNeSy --llm deepseek python run_exp.py --splits human --agent LLMNeSy --llm Qwen3-8B

python run_exp.py --splits human --agent LLM-modulo --llm deepseek --refine_steps 10 --oracle_translation python run_exp.py --splits human --agent LLM-modulo --llm Qwen3-8B --refine_steps 10 --oracle_translation

Nota:

  {
    "hard_logic_py": [
      "
      total_cost=0 
      for activity in allactivities(plan):
          total_cost+=activity_cost(activity)
              total_cost += innercity_transport_cost(activity_transports(activity))
      result=(total_cost<=1000)
      ", 
      "
      innercity_transport_set=set()
      for activity in allactivities(plan):
          if activity_transports(activity)!=[]:              
              innercity_transport_set.add(innercity_transport_type(activity_transports(activity)))
      result=(innercity_transport_set<={'taxi'})
      "
    ], 
    "hard_logic_nl": ["总预算为1800元", "市内交通选择taxi"], 
  }
  ``
  • Il metodo LLM-modulo richiede la modalità oracle_translation per il suo processo di raffinamento simbolico

📊 Valutazione

bash python eval_exp.py --splits human --method LLMNeSy_deepseek_oracletranslation python eval_exp.py --splits human --method LLMNeSy_deepseek python eval_exp.py --splits human --method LLM-modulo_deepseek_10steps_oracletranslation python eval_exp.py --splits human --method LLM-modulo_Qwen3-8B_10steps_oracletranslation


In TPC@IJCAI2025, il codice di valutazione è fornito nel file eval_tpc.py. Puoi eseguire il codice di valutazione come segue:
bash python eval_tpc.py --splits tpc_phase1 --method YOUR_METHOD_NAME

📚 Documentazione

Ambiente Vincoli

🛠️ Sviluppo Avanzato

1. Sviluppa il Tuo Algoritmo Agente

Per sviluppare il tuo algoritmo agente, devi ereditare la classe BaseAgent da chinatravel/agent/base.py e aggiungere la logica del tuo algoritmo alla funzione init_agent in chinatravel/agent/load_model.py. Forniamo un esempio di agente vuoto chiamato TPCAgent.

Passaggi:

  • Eredita la classe BaseAgent: Crea un nuovo file Python nella directory chinatravel/agent e definisci la tua classe agente, ereditando da BaseAgent.
python:chinatravel/agent/your_agent.py from .base import BaseAgent

class YourAgent(BaseAgent): def __init__(self, kwargs): super().__init__(kwargs) # Initialization logic

def act(self, observation): # Implement the decision - making logic of the agent pass


  • Aggiungi il codice alla funzione init_agent: Apri il file chinatravel/agent/load_model.py e aggiungi il supporto per il tuo nuovo agente nella funzione init_agent.
python: def init_agent(kwargs): # ... existing code ... elif kwargs["method"] == "YourMethodName": agent = YourAgent( kwargs ) # ... existing code ... return agent

2. Sviluppa il Tuo LLM Locale

Per sviluppare il tuo modello linguistico locale (LLM), devi ereditare la classe AbstractLLM dal file chinatravel/agent/llms.py e aggiungere il relativo codice di inferenza LLM locale in llms.py. Forniamo un esempio vuoto di LLM chiamato TPCLLM. Passaggi:

  • Eredita la classe AbstractLLM: Definisci la tua classe LLM nel file chinatravel/agent/llms.py, ereditando da AbstractLLM.
python class YourLLM(AbstractLLM): def __init__(self): super().__init__() # Initialization logic self.name = "YourLLMName"

def _get_response(self, messages, one_line, json_mode): # Implement the response logic of the LLM response = "Your LLM response" if json_mode: # Handle JSON mode pass elif one_line: # Handle one - line mode response = response.split("\n")[0] return response


  • Aggiungi codice alla funzione init_agent: Apri il file chinatravel/agent/load_model.py e aggiungi il supporto per il tuo nuovo llm nella funzione init_llm.
python: def init_llm(kwargs): # ... existing code ... elif llm_name == "glm4-plus": llm = YourLLM() # ... existing code ... return llm

3. Esegui il tuo codice utilizzando gli script di esperimento

Dopo aver completato lo sviluppo sopra indicato, puoi utilizzare gli script di esperimento per eseguire il tuo codice.

Esempio di esecuzione:

bash python run_tpc.py --splits easy --agent TPCAgent --llm TPCLLM python run_exp.py --splits easy --agent YourMethodName --llm YourLLMName
I risultati verranno salvati nella directory results/YourMethodName_YourLLMName_xxx, ad esempio, results/TPCAgent_TPCLLM.

✉️ Contatti

Se riscontri problemi, contatta Jie-Jing Shao, Bo-Wen Zhang, Xiao-Wen Yang.

📌 Citazione

Se il nostro articolo o le risorse correlate risultano utili per la tua ricerca, ti chiediamo gentilmente di citarli.

@misc{shao2024chinatravelrealworldbenchmarklanguage, title={ChinaTravel: A Real-World Benchmark for Language Agents in Chinese Travel Planning}, author={Jie-Jing Shao and Xiao-Wen Yang and Bo-Wen Zhang and Baizhi Chen and Wen-Da Wei and Guohao Cai and Zhenhua Dong and Lan-Zhe Guo and Yu-feng Li}, year={2024}, eprint={2412.13682}, archivePrefix={arXiv}, primaryClass={cs.AI}, url={https://arxiv.org/abs/2412.13682}, }
`` English | 简体中文 | 繁體中文 | 日本語 | 한국어 | हिन्दी | ไทย | Français | Deutsch | Español | Italiano | Русский | Português | Nederlands | Polski | العربية | فارسی | Türkçe | Tiếng Việt | Bahasa Indonesia | অসমীয়া

--- Tranlated By Open Ai Tx | Last indexed: 2025-10-17 ---