10分钟搞定AI服务发布:用LangChain把你的大模型变成API!
你是不是也开发过一些好玩的大模型应用,比如翻译工具、智能问答或者天气查询,但却不知道怎么让别人也能调用它?别急,今天我就手把手教你如何用LangChain快速把你的AI应用发布成一个Web服务,不管是Java、Python还是PHP的用户都能轻松集成!
一、准备工作:安装LangChain-Server
首先,你得先安装LangChain提供的服务器模块。打开你的终端,输入下面这行命令:
pip install langchain-server
(注意:如果你之前听过一些音译叫法比如“蓝圈”、“南墙”或者“烂菜”,其实都是指LangChain,别被带偏了哈!)
import ...
DASHCOPE_API_KEY = os.getenv("DASHCOPE_API_KEY")
# 调用大模型
client = ChatOpenAI(api_key=DASHSOCPE_API_KEY,
base_url="https//dashscope.aliyuncs.com/compatible-mode/v1",model="qwen-max-laest")
二、编写服务端代码:用FastAPI定义路由
假设你已经写好了一个翻译服务,现在我们要把它“包装”成一个Web接口。这里我们用FastAPI来搭建服务器。
from fastapi import FastAPI
from langchain_server import add_route
# 解析返回结果
parser = StrOutputParser()
# 定义提示词模板
prompt_template = ChatPromptTemplate.from_messages(
[
SystemMessagePromptTemplate.from_template("请将一下的内容翻译成{language}"),
('human','{text}')
]
)
# 以链形式调用
chain = prompt_template | client | parser
from fastapi import FastAPI
from langchain_server import add_route
# 假设这是你写好的翻译函数
def translate_text(language: str, text: str):
# 这里是你自己的模型调用逻辑
return f"Translated to {language}: {text}"
# app = FastAPI()
# 部署为服务
app = FastAPI(title="基于LangChain的服务",version="V1.5",description="翻译服务")
# 把翻译函数发布成API,路由设为 /translate
add_route(app, "/translate", translate_text)
注意:
add_route是LangChain提供的函数,用于绑定路由和函数。- 一个应用可以有多个服务,比如翻译、天气查询等,每个服务都可以有独立的路由。
三、启动服务:用Uvicorn运行服务器
代码写好后,用Uvicorn启动服务:
import uvicorn
if __name__ == "__main__":
uvicorn.run(app, host="localhost", port=80)
运行后,你的服务就在本机的80端口上跑起来啦!
(小提示:如果80端口被占用,可以换成8080或其他端口。)
四、测试服务:两种方法任你选
方法一:用Playground界面(推荐初学者)
在浏览器打开: http://localhost:80/playground/
你会看到一个可视化界面,里面自动识别出你的函数需要哪些参数(比如language和text)。输入值,点一下按钮,立马看到结果!
例如:
- language 填
french - text 填
今天的天气很好点击执行,就能返回法语翻译结果。
方法二:用ApiFox或Postman测试
如果你习惯用API工具,可以这样调用:
- URL:
http://localhost:80/invoke/ - 方法: POST
- 参数格式: JSON
{
"language": "english",
"text": "今天的天气很好"
}
注意:这里用的是
/invoke
/playground
五、客户端集成:其他语言也能调用
如果你是Python用户(用LangChain客户端):
from langchain_server import RemoteRunnable
client = RemoteRunnable("http://localhost:80/translate")
result = client.invoke({
"language": "french",
"text": "Hello world"
})
print(result)
LangChain客户端会自动处理通信,超省心!
如果你用其他语言(比如JavaScript):
fetch('http://localhost:80/invoke', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
language: 'french',
text: 'Hello world'
})
})
.then(response => response.json())
.then(data => console.log(data));
Java、PHP、Go等语言也是类似的,用HTTP客户端发POST请求就行。
六、常见问题排查
- 端口被占用:换一个端口,比如8000或8080。
- 路由找不到:检查是否漏写了
add_route。 - 参数名不对:确保和函数定义中的参数名一致(比如
language和text)。 - LangChain模块找不到:确认是否安装了
langchain-server。
七、总结:为什么用LangChain发布服务?
LangChain-Server帮你省去了写大量Web框架代码的麻烦,尤其是:
- 自动生成测试界面(Playground)
- 支持多语言客户端集成
- 无缝对接已有的LangChain应用
不管你是想快速验证模型效果,还是正式对外提供服务,用LangChain发布API都是又快又稳的方式。赶紧试试吧,让你的AI应用不再“孤芳自赏”!