【AI】Langchain框架学习12~14
Langchain框架学习12
了解one-api平台,为各llm接口进行了转发,可以实现不同的功能调用不同的llm
- 在one-api前端平台新建一个api key,之后可以配置可调用的模型
- 在代码中使用ChatOpenAI调用即可。
Langchain框架学习13
了解fastgpt的配置文件,可配套使用的工具和配置(one-api,ollama等)
Langchain框架学习14
了解langserver和gradio
一个是(主要)用来构建服务端的,一个是用来构建前端页面的。
- langserver
- 提供给server服务和客户端client的服务,两个都用就选all
- 对于langchain来说,就是可以快速简单的把chain暴露成网络服务,提供给其他应用访问
- 启动server后,可以作为LCEL中的一环
- 启动后,可以进入localhost:8000/docs页面看见所有暴露出来的后端接口(或者说方法),也可以直接在里面测试接口。
- 启动后,可以进入localhost:8000/langchainDemo/playground页面,展现的就是一个比较像前端界面的功能口,可以直接在里面测试写好的功能或方法。不仅展示功能输入和结果,还会展示运行过程。
# 安装
# 构建langserver服务端的依赖
#!pip install "langserve[server]"
# 构建langserver客户端的依赖
#!pip install "langserve[client]"
# 服务端+客户端整合依赖
!pip install "langserve[all]"
# 构建一个简单的chain
# 提示词模板
prompt_template = ChatPromptTemplate.from_messages([
("system", "Translat the following from English into {language}"),
("user", "{text}")
])
# 构建阿里云百炼大模型客户端
llm = ChatOpenAI(
model="qwen-plus",
base_url "https://dashscope_aliyunes_com/compatible-mode/v1",
openai_api_key=load_key("BAILIAN_API_KEY")
)
# 结果解析器 StrOutputParser会AIMessage转换成为str,实际上就是获取AIMessage的content属性。
parser = StrOutputParser()
# 构建链
chain = prompt_template | llm | parser
# 直接调用链
print (chain.invoke({"text": "nice to meet you", "language": "Chinese"}))
# 构建server服务端
from fastapi import FastAPI
from langserve import add_routes
# 构建服务端对象
app = FastAPI(
title="大模型语言翻译助手",
version="v1.0",
description="基于LangChain框架构建的大模型语言翻译助手")
# 添加路由信息
add_routes(app, chain, path="/LangchainDemo")
# 启动服务
if __name__ == "__main__" :
import uvicorn
uvicorn.run(app, host="0.0.0.0" port=8000)
以上这段代码要在python文件中运行
python ./langserver/myserver.py
提供给app使用
# 提供给app使用
from langserve import RemoteRunnable
client = RemoteRunnable("http://127.0.0.1:8000/LangchainDemo")
client.invoke({
"text":"nice to meet you",
"language": "Chinese"
})
- gradio
- 用于构建前端界面,测试功能方法,语法简单,包含下拉框,按钮,文本框等大多数的前端组件,一键使用即可。
# 安装Gradio依赖。要求python版本>=3.10
!pip install -qU gradio
import gradio as gr
def greet(name, intensity):
return "Hello," + name + "!" * int(intensity)
demo = gr.Interface(
fn=greet,
inputs=[gr.Text(Label="Name"), gr.Slider (Label="Intensity", minimum=0, maximum=10, step=1)],
outputs=[gr.Text(Label="Output")],
)
demo.Launch()
#share=True表示可以基于HuggingFace的虚拟服务直接分享这个页面给其他人。tizi
# 停止服务
demo.close()

浙公网安备 33010602011771号