Documentation Index
Fetch the complete documentation index at: https://langchain-zh.cn/llms.txt
Use this file to discover all available pages before exploring further.
xAI 提供了与 Grok 模型交互的 API。
API 参考有关所有功能和配置选项的详细文档,请查阅 ChatXAI API 参考。
集成详情
模型特性
要访问 xAI 模型,您需要创建一个 xAI 账户,获取 API 密钥,并安装 langchain-xai 集成包。
前往此页面注册 xAI 并生成 API 密钥。完成后,设置 XAI_API_KEY 环境变量:
import getpass
import os
if "XAI_API_KEY" not in os.environ:
os.environ["XAI_API_KEY"] = getpass.getpass("输入您的 xAI API 密钥:")
要启用模型调用的自动追踪,请设置您的 LangSmith API 密钥:
os.environ["LANGSMITH_API_KEY"] = getpass.getpass("输入您的 LangSmith API 密钥:")
os.environ["LANGSMITH_TRACING"] = "true"
LangChain xAI 集成位于 langchain-xai 包中:
pip install -qU langchain-xai
实例化
现在我们可以实例化模型对象并生成聊天补全:
from langchain_xai import ChatXAI
llm = ChatXAI(
model="grok-beta",
temperature=0,
max_tokens=None,
timeout=None,
max_retries=2,
# 其他参数...
)
messages = [
(
"system",
"您是一个将英语翻译成法语的助手。请翻译用户的句子。",
),
("human", "I love programming."),
]
ai_msg = llm.invoke(messages)
ai_msg
AIMessage(content="J'adore programmer.", additional_kwargs={'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 6, 'prompt_tokens': 30, 'total_tokens': 36, 'completion_tokens_details': None, 'prompt_tokens_details': None}, 'model_name': 'grok-beta', 'system_fingerprint': 'fp_14b89b2dfc', 'finish_reason': 'stop', 'logprobs': None}, id='run-adffb7a3-e48a-4f52-b694-340d85abe5c3-0', usage_metadata={'input_tokens': 30, 'output_tokens': 6, 'total_tokens': 36, 'input_token_details': {}, 'output_token_details': {}})
工具调用
ChatXAI 具有 工具调用(此处我们交替使用“工具调用”和“函数调用”)API,允许您描述工具及其参数,并让模型返回一个 JSON 对象,其中包含要调用的工具及其输入。工具调用对于构建使用工具的链和代理,以及更一般地从模型获取结构化输出非常有用。
使用 ChatXAI.bind_tools,我们可以轻松地将 Pydantic 类、字典模式、LangChain 工具甚至函数作为工具传递给模型。在底层,这些会被转换为 OpenAI 工具模式,其格式如下:
{
"name": "...",
"description": "...",
"parameters": {...} # JSONSchema
}
并在每次模型调用中传递。
from pydantic import BaseModel, Field
class GetWeather(BaseModel):
"""获取指定地点的当前天气"""
location: str = Field(description="城市和州,例如:San Francisco, CA")
llm_with_tools = llm.bind_tools([GetWeather])
ai_msg = llm_with_tools.invoke(
"what is the weather like in San Francisco",
)
ai_msg
AIMessage(content='I am retrieving the current weather for San Francisco.', additional_kwargs={'tool_calls': [{'id': '0', 'function': {'arguments': '{"location":"San Francisco, CA"}', 'name': 'GetWeather'}, 'type': 'function'}], 'refusal': None}, response_metadata={'token_usage': {'completion_tokens': 11, 'prompt_tokens': 151, 'total_tokens': 162, 'completion_tokens_details': None, 'prompt_tokens_details': None}, 'model_name': 'grok-beta', 'system_fingerprint': 'fp_14b89b2dfc', 'finish_reason': 'tool_calls', 'logprobs': None}, id='run-73707da7-afec-4a52-bee1-a176b0ab8585-0', tool_calls=[{'name': 'GetWeather', 'args': {'location': 'San Francisco, CA'}, 'id': '0', 'type': 'tool_call'}], usage_metadata={'input_tokens': 151, 'output_tokens': 11, 'total_tokens': 162, 'input_token_details': {}, 'output_token_details': {}})
实时搜索
xAI 支持 实时搜索 功能,使 Grok 能够基于网络搜索结果来支撑其回答:
from langchain_xai import ChatXAI
llm = ChatXAI(
model="grok-3-latest",
search_parameters={
"mode": "auto",
# 以下是可选参数示例:
"max_search_results": 3,
"from_date": "2025-05-26",
"to_date": "2025-05-27",
},
)
llm.invoke("请提供过去 24 小时内的世界新闻摘要。")
完整的网络搜索选项请参阅 xAI 文档。
API 参考
有关 ChatXAI 所有功能和配置的详细文档,请访问 API 参考。