跳到主要内容
这将帮助您开始使用 LangChain 的 IBM 文本补全模型 (LLMs)。有关 IBM watsonx.ai 功能和配置选项的详细文档,请参阅IBM watsonx.ai

概览

集成详情

类别本地可序列化PY 支持下载量版本
WatsonxLLM@langchain/communityNPM - DownloadsNPM - Version

设置

要访问 IBM WatsonxAI 模型,您需要创建一个 IBM watsonx.ai 帐户,获取 API 密钥或任何其他类型的凭据,并安装 @langchain/community 集成包。

凭据

前往 IBM Cloud 注册 IBM watsonx.ai 并生成 API 密钥或提供如下所示的任何其他身份验证形式。

IAM 身份验证

export WATSONX_AI_AUTH_TYPE=iam
export WATSONX_AI_APIKEY=<YOUR-APIKEY>

Bearer 令牌身份验证

export WATSONX_AI_AUTH_TYPE=bearertoken
export WATSONX_AI_BEARER_TOKEN=<YOUR-BEARER-TOKEN>

IBM watsonx.ai 软件身份验证

export WATSONX_AI_AUTH_TYPE=cp4d
export WATSONX_AI_USERNAME=<YOUR_USERNAME>
export WATSONX_AI_PASSWORD=<YOUR_PASSWORD>
export WATSONX_AI_URL=<URL>
一旦这些被放置在您的环境变量中并初始化对象,认证将自动进行。 也可以通过将这些值作为参数传递给新实例来完成认证。

IAM 身份验证

import { WatsonxLLM } from "@langchain/community/llms/ibm";

const props = {
  version: "YYYY-MM-DD",
  serviceUrl: "<SERVICE_URL>",
  projectId: "<PROJECT_ID>",
  watsonxAIAuthType: "iam",
  watsonxAIApikey: "<YOUR-APIKEY>",
};
const instance = new WatsonxLLM(props);

Bearer 令牌身份验证

import { WatsonxLLM } from "@langchain/community/llms/ibm";

const props = {
  version: "YYYY-MM-DD",
  serviceUrl: "<SERVICE_URL>",
  projectId: "<PROJECT_ID>",
  watsonxAIAuthType: "bearertoken",
  watsonxAIBearerToken: "<YOUR-BEARERTOKEN>",
};
const instance = new WatsonxLLM(props);

IBM watsonx.ai 软件身份验证

import { WatsonxLLM } from "@langchain/community/llms/ibm";

const props = {
  version: "YYYY-MM-DD",
  serviceUrl: "<SERVICE_URL>",
  projectId: "<PROJECT_ID>",
  watsonxAIAuthType: "cp4d",
  watsonxAIUsername: "<YOUR-USERNAME>",
  watsonxAIPassword: "<YOUR-PASSWORD>",
  watsonxAIUrl: "<url>",
};
const instance = new WatsonxLLM(props);
如果您想获取模型调用的自动化跟踪,您还可以通过取消注释下方来设置您的 LangSmith API 密钥
# export LANGSMITH_TRACING="true"
# export LANGSMITH_API_KEY="your-api-key"

安装

LangChain IBM watsonx.ai 集成位于 @langchain/community 包中
npm install @langchain/community @langchain/core

实例化

现在我们可以实例化我们的模型对象并生成聊天完成
import { WatsonxLLM } from "@langchain/community/llms/ibm";

const props = {
  decoding_method: "sample",
  maxNewTokens: 100,
  minNewTokens: 1,
  temperature: 0.5,
  topK: 50,
  topP: 1,
};
const instance = new WatsonxLLM({
  version: "YYYY-MM-DD",
  serviceUrl: process.env.API_URL,
  projectId: "<PROJECT_ID>",
  // spaceId: "<SPACE_ID>",
  // idOrName: "<DEPLOYMENT_ID>",
  model: "<MODEL_ID>",
  ...props,
});
注意
  • 您必须提供 spaceIdprojectIdidOrName(部署 ID),除非您使用轻量级引擎,该引擎无需指定即可工作(请参阅 watsonx.ai 文档
  • 根据您提供的服务实例的区域,使用正确的 serviceUrl。
  • 您需要通过 model_id 指定要用于推理的模型。

使用模型网关

import { WatsonxLLM } from "@langchain/community/llms/ibm";

const props = {
  decoding_method: "sample",
  maxNewTokens: 100,
  minNewTokens: 1,
  temperature: 0.5,
  topK: 50,
  topP: 1,
};

const instance = new WatsonxLLM({
  version: "YYYY-MM-DD",
  serviceUrl: process.env.API_URL,
  model: "<MODEL_ID>",
  modelGateway: true,
  ...props,
});
要在 Langchain 中使用模型网关,您需要事先通过 @ibm-cloud/watsonx-ai SDK 或 watsonx.ai API 创建提供程序并添加模型。请遵循此文档

调用与生成

const result = await instance.invoke("Print hello world.");
console.log(result);

const results = await instance.generate([
  "Print hello world.",
  "Print bye, bye world!",
]);
console.log(results);

print('Hello world.')<|endoftext|>
{
  generations: [ [ [Object] ], [ [Object] ] ],
  llmOutput: { tokenUsage: { generated_token_count: 28, input_token_count: 10 } }
}

链接

我们可以像这样将补全模型与提示模板链接起来
import { PromptTemplate } from "@langchain/core/prompts"

const prompt = PromptTemplate.fromTemplate("How to say {input} in {output_language}:\n")

const chain = prompt.pipe(instance);
await chain.invoke(
  {
    output_language: "German",
    input: "I love programming.",
  }
)
Ich liebe Programmieren.

To express that you are passionate about programming in German,

属性覆盖

初始化时传递的属性将在对象的整个生命周期内保持有效,但是您可以通过传递第二个参数来覆盖它们,如下所示:
const result2 = await instance.invoke("Print hello world.", {
  parameters: {
    maxNewTokens: 100,
  },
});
console.log(result2);
print('Hello world.')<|endoftext|>

分词

此包具有其自定义的 getNumTokens 实现,该实现返回将使用的确切令牌数量。
const tokens = await instance.getNumTokens("Print hello world.");
console.log(tokens);
4

API 参考

有关所有 IBM watsonx.ai 功能和配置的详细文档,请访问 API 参考:API 文档
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.