技术背景介绍
在构建大型语言模型(LLM)驱动的应用时,了解用户与产品交互的情况对于优化用户体验至关重要。Context提供了一种简单快速的方式来收集用户互动数据,这样您只需不到30分钟即可开始改善用户体验。本文将演示如何集成Context以实现这一功能。
核心原理解析
通过安装和配置Context的Python库,您可以轻松地将用户交互信息记录并分析。这是通过ContextCallbackHandler
来实现的,它能够捕获用户和AI助手之间的对话以及输入输出链的信息。
代码实现演示
环境配置
首先,确保您安装了所需的软件包:
%pip install --upgrade --quiet langchain langchain-openai langchain-community context-python
获取API凭证
- 前往Context设置页面。
- 生成一个新的API Token。
- 将此Token安全存储。
设置Context
使用ContextCallbackHandler
处理器来记录用户的交互信息。
import os
from langchain_community.callbacks.context_callback import ContextCallbackHandler
# 从环境变量中获取API Token
token = os.environ["CONTEXT_API_TOKEN"]
# 创建Context Callback Handler
context_callback = ContextCallbackHandler(token)
应用场景一: 聊天模型
使用聊天模型时,ContextCallbackHandler
能够直接记录用户与AI助手之间的对话。
import os
from langchain_core.messages import HumanMessage, SystemMessage
from langchain_openai import ChatOpenAI
# 从环境变量中获取API Token
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."),
]
# 打印用户和AI对话的结果
print(chat(messages))
应用场景二: Chain内进行记录
Context handler还可以记录链的输入和输出信息。
import os
from langchain.chains import LLMChain
from langchain_core.prompts import PromptTemplate
from langchain_core.prompts.chat import (
ChatPromptTemplate,
HumanMessagePromptTemplate,
)
from langchain_openai import ChatOpenAI
# 从环境变量中获取API Token
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])
# 配置Context callback handler
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"))
实践建议
- 确保您的API Token妥善保存,以防止泄露。
- 在设置回调时,注意确保同一个Context对象被传递给聊天模型和链。
- 通过Context捕获数据后,定期分析用户的交互数据以持续优化用户体验。
结尾:如果遇到问题欢迎在评论区交流。
—END—