Spaces:
Configuration error
Configuration error
| import os | |
| import sys | |
| from dotenv import load_dotenv | |
| # Add project root to path | |
| sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) | |
| from app.utils.embedding import get_query_embedding | |
| from app.services.qdrant_client import qdrant # or a retrieval function | |
| from app.services.openai_client import generate_response | |
| from app.services.tavily_client import search_web | |
| from app.utils.logging import logger | |
| # Load environment variables | |
| load_dotenv() | |
| COLLECTION_NAME = "your_collection_name" | |
| def test_query(user_query: str): | |
| logger.info(f"User query: {user_query}") | |
| # Step 1: Embed query | |
| query_embedding = get_query_embedding(user_query) | |
| # Step 2: Retrieve from Qdrant | |
| search_result = qdrant.search( | |
| collection_name=COLLECTION_NAME, | |
| query_vector=query_embedding, | |
| limit=3 | |
| ) | |
| retrieved_texts = [hit.payload["text"] for hit in search_result] | |
| # Step 3: Web search (optional) | |
| web_results = search_web(user_query) | |
| web_snippets = [result["content"] for result in web_results] | |
| # Step 4: Generate response | |
| context = "\n\n".join(retrieved_texts + web_snippets) | |
| prompt = f"Answer the following question using the context below:\n\nContext:\n{context}\n\nQuestion: {user_query}" | |
| response = generate_response(prompt) | |
| logger.info(f"Response:\n{response}") | |
| if __name__ == "__main__": | |
| test_query("What is LangGraph and how does it work?") | |