Skip to main content
Context 为基于 LLM 的产品和功能提供用户分析。
借助 Context,您可以在不到 30 分钟内开始了解用户并改善他们的使用体验。 本指南将介绍如何与 Context 进行集成。

安装与配置

pip install -qU  langchain langchain-openai langchain-community context-python

获取 API 凭据

获取 Context API Token 的步骤:
  1. 前往 Context 账户中的设置页面(with.context.ai/settings)。
  2. 生成新的 API Token。
  3. 将此 Token 安全保存。

配置 Context

要使用 ContextCallbackHandler,请从 LangChain 导入该处理器,并用您的 Context API Token 进行实例化。 使用前请确保已安装 context-python 包。
from langchain_community.callbacks.context_callback import ContextCallbackHandler
import os

token = os.environ["CONTEXT_API_TOKEN"]

context_callback = ContextCallbackHandler(token)

使用方式

在聊天模型中使用 Context 回调

Context 回调处理器可直接用于记录用户与 AI 助手之间的对话记录。
import os

from langchain.messages import HumanMessage, SystemMessage
from langchain_openai import ChatOpenAI

token = os.environ["CONTEXT_API_TOKEN"]

chat = ChatOpenAI(
    headers={"user_id": "123"}, temperature=0, callbacks=[ContextCallbackHandler(token)]
)

messages = [
    SystemMessage(
        content="You are a helpful assistant that translates English to French."
    ),
    HumanMessage(content="I love programming."),
]

print(chat(messages))

在 Chain 中使用 Context 回调

Context 回调处理器也可用于记录 Chain 的输入和输出。请注意,Chain 的中间步骤不会被记录——只记录起始输入和最终输出。 注意: 请确保将同一个 context 对象传递给聊天模型和 Chain。 错误用法:
chat = ChatOpenAI(temperature=0.9, callbacks=[ContextCallbackHandler(token)])
chain = LLMChain(llm=chat, prompt=chat_prompt_template, callbacks=[ContextCallbackHandler(token)])
正确用法:
handler = ContextCallbackHandler(token)
chat = ChatOpenAI(temperature=0.9, callbacks=[callback])
chain = LLMChain(llm=chat, prompt=chat_prompt_template, callbacks=[callback])
import os

from langchain_classic.chains import LLMChain
from langchain_core.prompts import PromptTemplate
from langchain_core.prompts.chat import (
    ChatPromptTemplate,
    HumanMessagePromptTemplate,
)
from langchain_openai import ChatOpenAI

token = os.environ["CONTEXT_API_TOKEN"]

human_message_prompt = HumanMessagePromptTemplate(
    prompt=PromptTemplate(
        template="What is a good name for a company that makes {product}?",
        input_variables=["product"],
    )
)
chat_prompt_template = ChatPromptTemplate.from_messages([human_message_prompt])
callback = ContextCallbackHandler(token)
chat = ChatOpenAI(temperature=0.9, callbacks=[callback])
chain = LLMChain(llm=chat, prompt=chat_prompt_template, callbacks=[callback])
print(chain.run("colorful socks"))