Skip to main content
本页面介绍的是 Groq,一家 AI 硬件和软件公司。有关如何使用 Grok 模型(由 xAI 提供)的信息,请参阅 xAI 提供商页面
API 参考有关所有功能和配置选项的详细文档,请访问 ChatGroq API 参考。
有关所有 Groq 模型的列表,请访问其文档

概述

集成详情

可序列化JS 支持下载量版本
ChatGroqlangchain-groqbetaPyPI - DownloadsPyPI - Version

模型功能

工具调用结构化输出图像输入音频输入视频输入Token 级流式输出原生异步Token 用量Logprobs

设置

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

凭证

前往 Groq 控制台注册 Groq 并生成 API 密钥。完成后,设置 GROQ_API_KEY 环境变量:
import getpass
import os

if "GROQ_API_KEY" not in os.environ:
    os.environ["GROQ_API_KEY"] = getpass.getpass("Enter your Groq API key: ")
要启用模型调用的自动追踪,请设置您的 LangSmith API 密钥:
os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
os.environ["LANGSMITH_TRACING"] = "true"

安装

LangChain Groq 集成位于 langchain-groq 包中:
pip install -qU langchain-groq

实例化

现在我们可以实例化模型对象并生成聊天补全。
推理格式如果您选择设置 reasoning_format,必须确保您使用的模型支持该格式。您可以在 Groq 文档中找到支持的模型列表。
from langchain_groq import ChatGroq

llm = ChatGroq(
    model="qwen/qwen3-32b",
    temperature=0,
    max_tokens=None,
    reasoning_format="parsed",
    timeout=None,
    max_retries=2,
    # other params...
)

调用

messages = [
    (
        "system",
        "You are a helpful assistant that translates English to French. Translate the user sentence.",
    ),
    ("human", "I love programming."),
]
ai_msg = llm.invoke(messages)
ai_msg
AIMessage(content="J'aime la programmation.", additional_kwargs={'reasoning_content': 'Okay, so I need to translate the sentence "I love programming." into French. Let me think about how to approach this. \n\nFirst, I know that "I" in French is "Je." That\'s straightforward. Now, the verb "love" in French is "aime" when referring to oneself. So, "I love" would be "J\'aime." \n\nNext, the word "programming." In French, programming is "la programmation." But wait, in French, when you talk about loving an activity, you often use the definite article. So, it would be "la programmation." \n\nPutting it all together, "I love programming" becomes "J\'aime la programmation." That sounds right. I think that\'s the correct translation. \n\nI should double-check to make sure I\'m not missing anything. Maybe I can think of similar phrases. For example, "I love reading" is "J\'aime lire," but when it\'s a noun, like "I love music," it\'s "J\'aime la musique." So, yes, using "la programmation" makes sense here. \n\nI don\'t think I need to change anything else. The sentence structure in French is Subject-Verb-Object, just like in English, so "J\'aime la programmation" should be correct. \n\nI guess another way to say it could be "J\'adore la programmation," using "adore" instead of "aime," but "aime" is more commonly used in this context. So, sticking with "J\'aime la programmation" is probably the best choice.\n'}, response_metadata={'token_usage': {'completion_tokens': 346, 'prompt_tokens': 23, 'total_tokens': 369, 'completion_time': 1.447541218, 'prompt_time': 0.000983386, 'queue_time': 0.009673684, 'total_time': 1.448524604}, 'model_name': 'deepseek-r1-distill-llama-70b', 'system_fingerprint': 'fp_e98d30d035', 'finish_reason': 'stop', 'logprobs': None}, id='run--5679ae4f-f4e8-4931-bcd5-7304223832c0-0', usage_metadata={'input_tokens': 23, 'output_tokens': 346, 'total_tokens': 369})
print(ai_msg.content)
J'aime la programmation.

视觉功能

Groq 支持特定模型的视觉功能,允许您在文本提示中同时发送图像。
支持视觉功能的模型
  • meta-llama/llama-4-scout-17b-16e-instruct
  • meta-llama/llama-4-maverick-17b-128e-instruct
有关最新的视觉模型列表,请查看 Groq 文档
from langchain_groq import ChatGroq
from langchain.messages import HumanMessage

llm = ChatGroq(model="meta-llama/llama-4-scout-17b-16e-instruct")

message = HumanMessage(
    content=[
        {"type": "text", "text": "Describe this image in detail."},
        {
            "type": "image_url",
            "image_url": {"url": "https://example.com/image.jpg"},
        },
    ]
)

response = llm.invoke([message])
print(response.content)
图像 URL 要求Groq 直接从 URL 获取图像。请确保您的图像 URL:
  • 可公开访问(无需身份验证)
  • 直接返回图像(无重定向)
  • 每次请求最大图像大小:20MB

API 参考

有关 ChatGroq 所有功能和配置的详细文档,请参阅 API 参考