From db130ab6c0842905ebf9473cb0731a5057bf3cb3 Mon Sep 17 00:00:00 2001 From: groupuser Date: Tue, 22 Apr 2025 23:58:34 +0000 Subject: [PATCH] Update server.py --- app/server.py | 70 ++++++++++++++++----------------------------------- 1 file changed, 21 insertions(+), 49 deletions(-) diff --git a/app/server.py b/app/server.py index 5aac2d3..3f5380c 100644 --- a/app/server.py +++ b/app/server.py @@ -1,63 +1,35 @@ -#!/usr/bin/env python -"""Example LangChain server exposes multiple runnables (LLMs in this case).""" - +from pydantic import BaseModel, Field from fastapi import FastAPI from fastapi.responses import RedirectResponse -from langchain_anthropic import ChatAnthropic -from langchain_openai import ChatOpenAI -from langchain_google_genai import ChatGoogleGenerativeAI - from langserve import add_routes +from chain import build_chain -import mlflow +# Input API +class QueryInput(BaseModel): + """쿼리 입력 모델""" + question: str = Field(..., description="사용자 질문") + temperature: float = 0.7 + max_tokens: int = 1000 -import getpass -import os +app = FastAPI() -os.environ["OPENAI_API_KEY"] = "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" -os.environ["GOOGLE_API_KEY"] = "AIzaSyDIO5PFKRV-kVjNzpsrOcC-KodUMO-VGAo" +rag_chain = build_chain() -mlflow.set_tracking_uri("http://localhost:5000") -mlflow.langchain.autolog() - -app = FastAPI( - title="LangChain Server", - version="1.0", - description="Spin up a simple api server using Langchain's Runnable interfaces", -) - -llm = ChatGoogleGenerativeAI( - model="gemini-2.0-flash-001", - temperature=0, - max_tokens=None, - timeout=None, - max_retries=2, - # other params... -) - -openai_llm = ChatOpenAI( - model="gpt-4o", - temperature=0, - max_tokens=None, - timeout=None, - max_retries=2, - # api_key="...", # if you prefer to pass api key in directly instaed of using env vars - # base_url="...", - # organization="...", - # other params... -) - -add_routes( - app, - llm, - path="/gemeni", -) @app.get("/") async def redirect_root_to_docs(): - return RedirectResponse("/gemeni/playground") + return RedirectResponse("/chat") + + +# Edit this to add the chain you want to add +add_routes( + app, + rag_chain, + path="/chat", + input_type=QueryInput +) if __name__ == "__main__": import uvicorn - uvicorn.run(app, host="0.0.0.0", port=9000) + uvicorn.run(app, host="0.0.0.0", port=8000)