Download src/main.py from yukarinw/Travel_AI: direct link, hf CLI and curl.
- Browser
- Download file 2.34 kB
-
https://huggingface.co/spaces/yukarinw/Travel_AI/resolve/main/src/main.py
- Command line
-
hf download hf://spaces/yukarinw/Travel_AI/src/main.py
-
curl -L -o main.py https://huggingface.co/spaces/yukarinw/Travel_AI/resolve/main/src/main.py
2.34 kB
| from datetime import date | |
| from langchain_core.messages import HumanMessage, AIMessage, BaseMessage, SystemMessage | |
| from typing import List, Sequence | |
| from src.graph_builder import graph_app | |
| from src.graph_state import GraphState | |
| from src.database import conn_pool | |
| def run_chatbot(): | |
| try: | |
| if conn_pool is None: | |
| print("\nLỗi: Không thể kết nối Database. Chatbot không thể hoạt động.") | |
| return | |
| from src.tools import fetch_locations_tool | |
| initial_locations = fetch_locations_tool() | |
| if initial_locations is None: | |
| print("\nLỗi: Không thể truy vấn dữ liệu từ Database. Chatbot không thể hoạt động.") | |
| return | |
| print(f"\nChatbot đã sẵn sàng! Các địa điểm hỗ trợ: {', '.join(initial_locations[:10])}{'...' if len(initial_locations) > 10 else ''}") | |
| except Exception as e: | |
| print(f"\nLỗi khởi tạo: {e}") | |
| return | |
| conversation_history: List[BaseMessage] = [] | |
| print("\n--- Bắt đầu trò chuyện (gõ 'quit' để thoát) ---") | |
| while True: | |
| try: | |
| user_input = input("Bạn: ") | |
| if user_input.lower() == 'quit': | |
| print("Chatbot: Tạm biệt!") | |
| break | |
| if not user_input.strip(): | |
| continue | |
| conversation_history.append(HumanMessage(content=user_input)) | |
| graph_input: GraphState = { | |
| "messages": conversation_history, | |
| "user_query": None, "current_date": None, "available_locations": None, | |
| "extracted_entities": None, "search_results": None, | |
| "final_response": None, "error": None, | |
| "routing_decision": None, | |
| } | |
| final_state = graph_app.invoke(graph_input) | |
| conversation_history = list(final_state.get("messages", conversation_history)) | |
| response = final_state.get("final_response", "Xin lỗi, tôi không thể xử lý yêu cầu này.") | |
| print(f"Chatbot: {response}") | |
| except KeyboardInterrupt: | |
| print("\nChatbot: Tạm biệt!") | |
| break | |
| except Exception as e: | |
| print(f"Chatbot: Đã xảy ra lỗi: {e}. Vui lòng thử lại.") | |
| if __name__ == "__main__": | |
| run_chatbot() |