以编程方式使用文档

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

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

此集成需要 contextual-client Python SDK。了解更多关于 contextual-client Python SDK.

概述

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

集成详情

可序列化JS 支持下载量版本
ChatContextuallangchain-contextualbeta!PyPI - 下载量!PyPI - 版本

模型特性

工具调用结构化输出图像输入音频输入视频输入令牌级流式处理原生异步令牌使用量对数概率

设置

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

凭证

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

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 package:

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 基础语言模型接受额外的 kwargs 调用时 ChatContextual.invoke method.

这些额外输入包括:

参数类型描述
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)

链接

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

from langchain_core.output_parsers import StrOutputParser

chain = llm | StrOutputParser

chain.invoke(
    messages, knowledge=knowledge, systemp_prompt=system_prompt, avoid_commentary=True
)

API 参考

有关所有功能和配置的详细文档 ChatContextual 请访问 GitHub 页面: github.com/ContextualAI//langchain-contextual