• 作者:老汪软件技巧
  • 发表时间: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);