本项目使用 OpenAI 的 LLM 和 Embedding 的 API,可以选择 OpenAI 官方 API 或者使用 Azure OpenAI 服务,如果使用其他 LLM 和 Embedding API,请自行查阅 langchain.js 和对应 API 的文档。
如果你是 OpenAI 官方 API 用户,在 .env 中配置以下环境变量:
OPENAI_API_KEY=<your-key>
如果使用 OpenAI API,可能需要在创建 OpenAIEmbeddings
时手动指定 model 参数,来确定使用的 embedding model,具体请参考:https://js.langchain.com/v0.2/docs/integrations/text_embedding/openai/
参考文档:
如果你使用的 Azure OpenAI 服务,需要在 .env 配置以下环境变量:
创建和部署 Azure OpenAI 服务的教程可以参考 这里, 以及其他 Azure OpenAI 官方文档和教程。
AZURE_OPENAI_API_KEY=abc
AZURE_OPENAI_API_VERSION=abc
AZURE_OPENAI_API_DEPLOYMENT_NAME=abc
AZURE_OPENAI_API_INSTANCE_NAME=abc
AZURE_OPENAI_API_EMBEDDINGS_DEPLOYMENT_NAME=abc
在配置时遇到问题,可以查阅文档:
介绍基础的 langchain.js LCEL Chain 的使用方式 code
参考文档:
使用 langchian.js 和 lanceDB 构建一个 RAG 工具。
其将 孔乙己原文 作为知识库,使用 langchain.js 的 LLM 和 Embedding API,实现一个 RAG 工具,可以回答关于孔乙己的问题。
参考文档:
使用 langchain.js 构建一个 reAct Agent。
reAct 是一个非常简单和基础的 Agent,但它非常方便新手理解 Agent 的概念和哲学。 其只支持单一输入和输出的 tool,限制了应用场景。 code
参考文档:
目前最好用也是最强的 Agent 方案,基于 OpenAI Function Calling 功能,支持复杂的输入和输出,并且可以将函数的输入输出定义为 JSON Schema,方便模型进行理解和调用。
参考文档: