Spaces:
No application file
No application file
| from dotenv import load_dotenv | |
| from fastapi import FastAPI, responses | |
| from pydantic import BaseModel | |
| from embedchain import App | |
| load_dotenv(".env") | |
| app = FastAPI(title="Embedchain FastAPI App") | |
| embedchain_app = App() | |
| class SourceModel(BaseModel): | |
| source: str | |
| class QuestionModel(BaseModel): | |
| question: str | |
| async def add_source(source_model: SourceModel): | |
| """ | |
| Adds a new source to the EmbedChain app. | |
| Expects a JSON with a "source" key. | |
| """ | |
| source = source_model.source | |
| embedchain_app.add(source) | |
| return {"message": f"Source '{source}' added successfully."} | |
| async def handle_query(question_model: QuestionModel): | |
| """ | |
| Handles a query to the EmbedChain app. | |
| Expects a JSON with a "question" key. | |
| """ | |
| question = question_model.question | |
| answer = embedchain_app.query(question) | |
| return {"answer": answer} | |
| async def handle_chat(question_model: QuestionModel): | |
| """ | |
| Handles a chat request to the EmbedChain app. | |
| Expects a JSON with a "question" key. | |
| """ | |
| question = question_model.question | |
| response = embedchain_app.chat(question) | |
| return {"response": response} | |
| async def root(): | |
| return responses.RedirectResponse(url="/docs") | |