如果快速搭建一个 LLM 后台 API,使前端可以快速接入 LLM API。LangChain 或者 LlamaIndex 架构都可以快速集成各种大语言模型,本文将讲述如何通过 Fast API + LangServe 快速的搭建一个后台 Rest API 服务。LLM 这些框架现在主打一个就是快速,不用很多代码就可以完成。
安装依赖
创建 requirements.txt 包含一下类库,大语言模型,我主要使用 Aliyun、Google 或者 Ollama 的,可以根据自己的情况自行替换。pydantic 使用 1.10.13 版本,主要是针对 FastAPI 的一个问题,https://github.com/tiangolo/fastapi/issues/10360,如果不使用 invoke、stream 在 Swagger 中不会生成。
langchain
langchain_community
langserve
fastapi
uvicorn
python-dotenv
langchain-google-genai
dashscope
sse_starlette
pydantic==1.10.13
服务端代码
from fastapi import FastAPI
from langchain.prompts import ChatPromptTemplate
from langchain.chat_models import ChatOpenAI
from langserve import add_routes
import uvicorn
import os
from langchain_community.llms.ollama import Ollama
from langchain_community.llms.tongyi import Tongyi
from langchain_community.chat_models import ChatTongyi
from dotenv import load_dotenv
load_dotenv()
app = FastAPI(
title="Langchain LLM API",
version="1.0",
description="A Multi-LLM API with Langchain"
)
llm = ChatTongyi(model_name="llama3.1-70b-instruct")
prompt2 = ChatPromptTemplate.from_template("Write me a poem about {topic} for a 5-year-old child with 100 words")
# Create API Routes with Langchain Pipelines
add_routes(app, prompt2 | llm, path="/poem")
if __name__ == "__main__":
uvicorn.run(app, host="localhost", port=8000)
运行并测试
运行程序,通过 /docs 进入 swagger 页面进行测试
http://localhost:8000/docs
总结
Langchain 整个技术栈使用起来都很方便,无论是接入模型、监控还是对外服务,如果需要监控提示词,可以接入 LangSmith。