跳到主要内容
Open In ColabOpen on GitHub

ChatContextual

这将帮助您开始使用 Contextual AI 的基础语言模型聊天模型

要了解更多关于 Contextual AI 的信息,请访问我们的文档

此集成需要 contextual-client Python SDK。在此处了解更多信息此处

概述

此集成调用 Contextual AI 的基础语言模型。

集成详情

类别本地可序列化JS 支持包下载量最新包版本
ChatContextuallangchain-contextual测试版PyPI - DownloadsPyPI - Version

模型特性

工具调用结构化输出JSON 模式图片输入音频输入视频输入逐令牌流式传输原生异步令牌使用量对数概率

设置

要访问 Contextual 模型,您需要创建一个 Contextual AI 账户,获取一个 API 密钥,并安装 langchain-contextual 集成包。

凭证

前往 app.contextual.ai 注册 Contextual 并生成 API 密钥。完成此操作后,设置 CONTEXTUAL_AI_API_KEY 环境变量

import getpass
import os

if not os.getenv("CONTEXTUAL_AI_API_KEY"):
os.environ["CONTEXTUAL_AI_API_KEY"] = getpass.getpass(
"Enter your Contextual API key: "
)

如果您希望对模型调用进行自动化追踪,也可以通过取消注释下方内容来设置您的 LangSmith API 密钥。

# os.environ["LANGSMITH_TRACING"] = "true"
# os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")

安装

LangChain Contextual 集成位于 langchain-contextual 包中

%pip install -qU langchain-contextual

实例化

现在我们可以实例化模型对象并生成聊天补全。

聊天客户端可以通过以下附加设置进行实例化

参数类型描述默认
temperatureOptional[float]采样温度,影响响应的随机性。请注意,较高的温度值可能会降低基础性。0
top_pOptional[float]原子核采样参数,是温度的替代方案,也影响响应的随机性。请注意,较高的 top_p 值可能会降低基础性。0.9
max_new_tokensOptional[int]模型在响应中可以生成的最大令牌数。最小值为 1,最大值为 2048。1024
from langchain_contextual import ChatContextual

llm = ChatContextual(
model="v1", # defaults to `v1`
api_key="",
temperature=0, # defaults to 0
top_p=0.9, # defaults to 0.9
max_new_tokens=1024, # defaults to 1024
)

调用

Contextual 基础语言模型在调用 ChatContextual.invoke 方法时接受额外的 kwargs

这些附加输入是

参数类型描述
knowledgelist[str]必需:基础语言模型在生成响应时可以使用的知识源字符串列表。
system_promptOptional[str]可选:模型在生成响应时应遵循的指令。请注意,我们不保证模型会完全遵循这些指令。
avoid_commentaryOptional[bool]可选(默认为 False):指示模型是否应避免在响应中提供额外评论的标志。评论本质上是对话性的,不包含可验证的声明;因此,评论并非严格基于可用上下文。然而,评论可能提供有用的上下文,从而提高响应的有用性。
# include a system prompt (optional)
system_prompt = "You are a helpful assistant that uses all of the provided knowledge to answer the user's query to the best of your ability."

# provide your own knowledge from your knowledge-base here in an array of string
knowledge = [
"There are 2 types of dogs in the world: good dogs and best dogs.",
"There are 2 types of cats in the world: good cats and best cats.",
]

# create your message
messages = [
("human", "What type of cats are there in the world and what are the types?"),
]

# invoke the GLM by providing the knowledge strings, optional system prompt
# if you want to turn off the GLM's commentary, pass True to the `avoid_commentary` argument
ai_msg = llm.invoke(
messages, knowledge=knowledge, system_prompt=system_prompt, avoid_commentary=True
)

print(ai_msg.content)

链式调用

我们可以将 Contextual 模型与输出解析器链接起来。

from langchain_core.output_parsers import StrOutputParser

chain = llm | StrOutputParser

chain.invoke(
messages, knowledge=knowledge, systemp_prompt=system_prompt, avoid_commentary=True
)
API 参考:StrOutputParser

API 参考

有关所有 ChatContextual 功能和配置的详细文档,请前往 Github 页面:https://github.com/ContextualAI//langchain-contextual