Spaces:
Sleeping
Sleeping
| import os | |
| from fastapi import FastAPI | |
| from pydantic import BaseModel | |
| from tavily import TavilyClient | |
| from datetime import date | |
| from langchain_ollama.llms import OllamaLLM | |
| app = FastAPI() | |
| class PromptRequest(BaseModel): | |
| prompt: str | |
| temperature: float = 0.5 | |
| def health(): | |
| return {"ok": True} | |
| today_date = date.today() | |
| def search_tool(query:str): | |
| api_key = os.environ.get("TAVILY_API_KEY") | |
| client = TavilyClient(api_key) | |
| response = client.search(query=query, include_answer="advanced", search_depth="advanced") | |
| return response | |
| async def generate_response(request: PromptRequest): | |
| llm = OllamaLLM( | |
| model="aya:8b", | |
| temperature=request.temperature, | |
| base_url="http://localhost:11436" | |
| ) | |
| tool_prompt = f"System Role: You are an autonomous AI Agent with real-time internet access. Current Date: {today_date} TOOL_DEFINITION: - Name: Search_tool - Activation Command: Search [Your Query Here]" | |
| response = llm.invoke(f'{tool_prompt}, User-Query:-{request.prompt}') | |
| if "Search " in response: | |
| new_query = response.removeprefix("Search ") | |
| search_response = search_tool(query=new_query) | |
| new_response = llm.invoke(f"Extra_information:- {search_response} User-Query:- {request.prompt}") | |
| return {"response": new_response} | |
| else: | |
| return {"response": response} | |
| async def qwen_generate_response(request:PromptRequest): | |
| llm = OllamaLLM( | |
| model="phi4:14b", | |
| temperature=request.temperature, | |
| base_url="http://localhost:11435" | |
| ) | |
| tool_prompt = f"System Role: You are an autonomous AI Agent with real-time internet access. Current Date: {today_date} TOOL_DEFINITION: - Name: Search_tool - Activation Command: Search [Your Query Here]" | |
| response = llm.invoke(f'{tool_prompt}, User-Query:-{request.prompt}') | |
| if "Search " in response: | |
| new_query = response.removeprefix("Search ") | |
| search_response = search_tool(query=new_query) | |
| new_response = llm.invoke(f"Extra_information:- {search_response} User-Query:- {request.prompt}") | |
| return {"response": new_response} | |
| else: | |
| return {"response": response} |