| import os |
| from langchain.memory import ConversationBufferMemory |
| from langchain.utilities import GoogleSearchAPIWrapper |
| from langchain.agents import initialize_agent, Tool |
| from lang import G4F |
| from fastapi import FastAPI, Request |
| from pydantic import BaseModel |
| from fastapi.middleware.cors import CORSMiddleware |
|
|
| app = FastAPI() |
|
|
| app.add_middleware( |
| CORSMiddleware, |
| allow_credentials=True, |
| allow_origins=["*"], |
| allow_methods=["*"], |
| allow_headers=["*"], |
| ) |
|
|
|
|
| google_api_key = os.environ["GOOGLE_API_KEY"] |
| cse_id = os.environ["GOOGLE_CSE_ID"] |
| model = os.environ['default_model'] |
|
|
|
|
| search = GoogleSearchAPIWrapper() |
| tools = [ |
| Tool( |
| name ="Search" , |
| func=search.run, |
| description="useful when you need to answer questions about current events" |
| ), |
| ] |
|
|
| llm = G4F(model=model) |
| agent_chain = initialize_agent(tools, llm, agent=AgentType.OPENAI_FUNCTIONS, verbose=True) |
|
|
|
|
| @app.get("/") |
| def gello(): |
| return "Hello! My name is Linlada." |
|
|
| @app.post('/linlada') |
| async def hello_post(request: Request): |
| llm = G4F(model=model) |
| data = await request.json() |
| prompt = data['prompt'] |
| chat = llm(prompt) |
| return chat |
|
|
| @app.post('/search') |
| async def searches(request: Request): |
| data = await request.json() |
| prompt = data['prompt'] |
| response = agent_chain.run(input=prompt) |
| return response |
|
|
|
|