- 作者:老汪软件技巧
- 发表时间:2024-09-09 07:01
- 浏览量:
Langchain
LangChain 是一个用于构建应用程序的框架,特别是那些与语言模型(如 GPT-3、GPT-4 等)交互的应用。它的主要目标是简化与自然语言处理(NLP)相关的开发过程,使开发者能够更容易地创建、管理和部署基于语言模型的应用。
LangChain 的主要特点包括:模块化设计:提供了多个模块,允许开发者根据需要组合使用,例如数据加载、模型调用和结果处理等。集成性:支持与多种语言模型和 API 的集成,方便开发者使用不同的模型进行实验和比较。工作流管理:支持构建复杂的工作流,能够处理多轮对话、上下文管理等功能。数据处理:提供工具帮助处理和转换数据,以便更好地与语言模型交互。社区和文档:有活跃的社区支持和丰富的文档,方便开发者快速上手。
LangChain 适用于需要自然语言理解和生成的各种应用场景,如聊天机器人、自动化内容生成、数据分析等
结合AI大模型
接下来我们就通过一个demo演示一下,如何通过langchain结合ai大模型去使用
首先我们需要两个依赖
"@langchain/core": "^0.2.18",
"@langchain/openai": "^0.2.5"
@langchain/core@langchain/openai
接下来结构拿到openai的聊天大模型,以及一个模板
// 让所有的主流大模型接口一致
import { ChatOpenAI } from "@langchain/openai"; // 聊天大模型
// prompt 接收参数
import { PromptTemplate } from "@langchain/core/prompts"; // 提示模板
先创建一个PromptTemplate模板
const personallzedGreetingPrompt = new PromptTemplate({
inputVariables: ["price", "flower_name"],
template:
"你是一位专业的鲜花店文案撰写者,\n对于售价{price}元的{flower_name},提供一个吸引人的简短介绍",
});
接下来需要去实例化一下大模型,我们这里使用的是gpt-3.5-turbo
// 实例化大模型
const model = new ChatOpenAI({
configuration: {
apiKey: "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
baseURL: "https://api.chatanywhere.tech/v1",
},
model: "gpt-3.5-turbo",
});
接下来将写好的模板和我们指定的大模型进行链接
const chain = personallzedGreetingPrompt.pipe(model);
最后将我们链接好的结果通过提供的invoke方法,发送请求就可以得到响应了
const res = await chain.invoke({
price: "99",
flower_name: "瓜农老姚的南瓜花",
});
运行并打印我们可以看到结果
完整代码
需要替换成自己的key以及baseURL
// 让所有的主流大模型接口一致
import { ChatOpenAI } from "@langchain/openai"; // 聊天大模型
// prompt 接收参数
import { PromptTemplate } from "@langchain/core/prompts"; // 提示模板
const personallzedGreetingPrompt = new PromptTemplate({
inputVariables: ["price", "flower_name"],
template:
"你是一位专业的鲜花店文案撰写者,\n对于售价{price}元的{flower_name},提供一个吸引人的简短介绍",
});
// 实例化大模型
// 需要替换成自己的key以及baseURL
const model = new ChatOpenAI({
configuration: {
apiKey: "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
baseURL: "https://api.chatanywhere.tech/v1",
},
model: "gpt-3.5-turbo",
});
// langchain chain
const chain = personallzedGreetingPrompt.pipe(model);
const res = await chain.invoke({
price: "99",
flower_name: "瓜农老姚的南瓜花",
});
console.log(res);
console.log(res.content);