Server Api******
#!/usr/bin/python
-- coding: UTF-8 --
import uvicorn
from fastapi import FastAPI
from base import FaissEngine
from langserve.server import add_routes
from langchain_core.prompts import PromptTemplate
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain.chains.retrieval_qa.base import RetrievalQA
from langchain.chains.summarize import load_summarize_chain
from langchain_community.chat_models.ollama import ChatOllama
from langchain.agents import AgentExecutor, create_react_agent
from langchain_community.tools.tavily_search import TavilySearchResults
from langchain_core.prompts.chat import HumanMessagePromptTemplate, SystemMessagePromptTemplate
TAVILY KEY
import os
os.environ[‘DISABLE_NEST_ASYNCIO’] = ‘True’
os.environ[‘TAVILY_API_KEY’] = ‘’
app = FastAPI(
name = “智能体服务器”,
title=“Agent Api Server”,
version=“0.1”,
description=“Agent Api 服务器”,
)
llm = ChatOllama(
model=“qwen:32b”,
base_url=“http://172.10.36.28:11434”, #callbacks=[StdOutCallbackHandler(), StreamingStdOutCallbackHandler()],
temperature=0.8)
翻译Agent
system_prompt = SystemMessagePromptTemplate(
prompt=PromptTemplate(
template="将以下内容翻译成 {language}: ",
input_variables=[“language”],
)
)
human_prompt = HumanMessagePromptTemplate(
prompt=PromptTemplate(
template=“{text}”,
input_variables=[“text”],
)
)
translate_template = ChatPromptTemplate.from_messages([system_prompt, human_prompt])
parser = StrOutputParser()
translate_agent = translate_template | llm | parser
add_routes(
app,
translate_agent,
path=“/translate”,
)
PDF 问答 Agent
faiss = FaissEngine()
vector_store = faiss.load_vector_store()
def get_qa_chain(vector_store):
prompt_template = “”“基于以下已知内容,简洁和专业的来回答用户的问题。
如果无法从中得到答案,清说"根据已知内容无法回答该问题”
答案请使用中文。
已知内容:
{context}
问题:
{question}“”"
prompt = PromptTemplate(template=prompt_template,
input_variables=["context", "question"])
return RetrievalQA.from_llm(llm=llm,
retriever=vector_store.as_retriever(),
prompt=prompt)
pdf_qa_agent = get_qa_chain(vector_store=vector_store)
add_routes(
app,
pdf_qa_agent,
path=“/pdf_qa”,
)
PDF 摘要 Agent
pdf_summary_template = “”"
以下是一组文档
{text}
根据这些文档,请确定主要主题。
答案请使用中文。
有用的答案:“”"
chain_type &