本文讲述了如何使用FastAPI
和langchain
框架,包装本地大模型llama3.1
,实现语言翻译功能的API。
相对于 Flask
,使用FastAPI
做接口要简便得多。
FastAPI
可以被看作是把Starlette
、Pydantic
等框架粘合在一起的组合体。
FastAPI
使用Pydantic
进行数据验证,并使用Starlette
作为工具,使其与Flask
相比快得惊人,具有与Node
或Go
中的高速 Web APIs 相同的性能。Starlette
+Uvicorn
提供异步请求能力,这是Flask
所缺乏的。
安装依赖
pip install fastapi pydantic typing
定义翻译方法
下面的方法需要两个参数,其中:language是翻译目标语言,text是需要翻译的文本。
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_ollama.llms import OllamaLLM
# 翻译方法
def translate(language,text):
# 1. 创建提示词模板
system_template = "Translate the following into {language}:"
prompt_template = ChatPromptTemplate.from_messages([
('system', system_template),
('user', '{text}'