Spaces:
Runtime error
Runtime error
File size: 2,635 Bytes
ea1e6bd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
import os
import asyncio
import httpx
import nest_asyncio
from dotenv import load_dotenv
# Apply nested asyncio patch
nest_asyncio.apply()
# helper functions
GEMINI_API_KEY="AIzaSyCUCivstFpC9pq_jMHMYdlPrmh9Bx97dFo"
TAVILY_API_KEY="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"
OPENAI_API_KEY="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"
QDRANT_API_KEY="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2Nlc3MiOiJtIiwiZXhwIjoxNzUxMDUxNzg4fQ.I9J-K7OM0BtcNKgj2d4uVM8QYAHYfFCVAyP4rlZkK2E"
QDRANT_URL="https://6a3aade6-e8ad-4a6c-a579-21f5af90b7e8.us-east4-0.gcp.cloud.qdrant.io"
OPENAI_API_KEY="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"
WEAVIATE_URL="yorcqe2sqswhcaivxvt9a.c0.us-west3.gcp.weaviate.cloud"
WEAVIATE_API_KEY="d2d0VGdZQTBmdTFlOWdDZl9tT2h3WDVWd1NpT1dQWHdGK0xjR1hYeWxicUxHVnFRazRUSjY2VlRUVlkwPV92MjAw"
DEEPINFRA_API_KEY="285LUJulGIprqT6hcPhiXtcrphU04FG4"
DEEPINFRA_BASE_URL="https://api.deepinfra.com/v1/openai"
# Try to import tavily with fallback
try:
from tavily import TavilyClient
tavily_client = TavilyClient(api_key=TAVILY_API_KEY)
TAVILY_AVAILABLE = True
except ImportError:
print("Warning: Tavily package not found. Web search will use fallback mode.")
tavily_client = None
TAVILY_AVAILABLE = False
async def search_autism(query: str) -> dict:
"""Performs a web search for information about autism."""
if not TAVILY_AVAILABLE:
print("Web search unavailable - tavily package not installed")
return {
"results": [],
"answer": "Web search functionality is currently unavailable. Please ensure all dependencies are installed."
}
try:
# Execute a search query using Tavily
response = tavily_client.search(
query=query,
max_results=5,
search_depth="advanced",
topic="general",
include_answer=True
)
return {
"results": response.get("results", []),
"answer": response.get("answer", "")
}
except Exception as e:
print(f"Search error: {str(e)}")
return {
"results": [],
"answer": f"Unable to perform web search: {str(e)}"
}
# Test function for development
async def main():
query = "autism symptoms and treatments"
result = await search_autism(query)
print("Search Results:")
for res in result.get("results", []):
print(f"- {res.get('title')} ({res.get('url')})")
print("\nAnswer:")
print(result.get("answer", "No answer provided."))
# Run the script
if __name__ == "__main__":
asyncio.run(main())
|