Spaces:
Runtime error
Runtime error
| import os | |
| # --- REMOVED DSPY IMPORT --- | |
| from qdrant_client import QdrantClient | |
| from sentence_transformers import SentenceTransformer | |
| from langchain_google_genai import ChatGoogleGenerativeAI | |
| from tavily import TavilyClient | |
| GOOGLE_API_KEY = os.environ.get("GOOGLE_API_KEY") | |
| VECTORDB_URL = os.environ.get("VECTORDB_URL") | |
| QDRANT_API_KEY = os.environ.get("QDRANT_API_KEY") | |
| TAVILY_API_KEY = os.environ.get("TAVILY_API_KEY") | |
| if not all([GOOGLE_API_KEY, VECTORDB_URL, QDRANT_API_KEY, TAVILY_API_KEY]): | |
| print("WARNING: One or more environment variables are missing from .env") | |
| print(f"GOOGLE_API_KEY: {'SET' if GOOGLE_API_KEY else 'MISSING'}") | |
| print(f"VECTORDB_URL: {'SET' if VECTORDB_URL else 'MISSING'}") | |
| print(f"QDRANT_API_KEY: {'SET' if QDRANT_API_KEY else 'MISSING'}") | |
| print(f"TAVILY_API_KEY: {'SET' if TAVILY_API_KEY else 'MISSING'}") | |
| # --- 1. LangChain Client (for main generation) --- | |
| llm_gemini = ChatGoogleGenerativeAI( | |
| model="gemini-2.5-flash", | |
| google_api_key=GOOGLE_API_KEY, | |
| temperature=0.0 | |
| ) | |
| print("--- LangChain Gemini Client Initialized ---") | |
| # --- 2. Qdrant Client & Embedding Model (for RAG) --- | |
| try: | |
| qdrant_client = QdrantClient( | |
| url=VECTORDB_URL, | |
| api_key=QDRANT_API_KEY, | |
| timeout=10 # Set a timeout | |
| ) | |
| print("--- Qdrant Client Initialized ---") | |
| except Exception as e: | |
| print(f"--- Qdrant Client FAILED to initialize: {e} ---") | |
| qdrant_client = None | |
| embedding_model = SentenceTransformer("all-MiniLM-L6-v2") | |
| print("--- SentenceTransformer Model Loaded ---") | |
| # --- 3. Tavily Client (for MCP/Web Search) --- | |
| # NOTE: Your project requires "MCP." In a real-world scenario, you would | |
| # run a separate MCP server (e.g., `mcp-server up tavily`). | |
| # For simplicity and to avoid running a *second* server, we are using | |
| # the Tavily client directly, which is what the MCP server does internally. | |
| # This provides the *functionality* of your MCP pipeline. | |
| tavily_client = TavilyClient(api_key=TAVILY_API_KEY) | |
| print("--- Tavily Client Initialized (Simulating MCP) ---") | |
| # --- SECTION 4 (DSPY CLIENT) HAS BEEN REMOVED --- | |