文档API 参考📓 教程🧑‍🍳 菜谱🤝 集成💜 Discord🎨 Studio
API 参考

Together AI

Together AI 集成(用于 Haystack)

模块 haystack_integrations.components.generators.together_ai.generator

TogetherAIGenerator

提供了一个使用在 Together AI 上运行的大型语言模型生成文本的接口。

使用示例

from haystack_integrations.components.generators.together_ai import TogetherAIGenerator

generator = TogetherAIGenerator(model="deepseek-ai/DeepSeek-R1",
                            generation_kwargs={
                            "temperature": 0.9,
                            })

print(generator.run("Who is the best Italian actor?"))

TogetherAIGenerator.__init__

def __init__(api_key: Secret = Secret.from_env_var("TOGETHER_API_KEY"),
             model: str = "meta-llama/Llama-3.3-70B-Instruct-Turbo",
             api_base_url: Optional[str] = "https://api.together.xyz/v1",
             streaming_callback: Optional[StreamingCallbackT] = None,
             system_prompt: Optional[str] = None,
             generation_kwargs: Optional[Dict[str, Any]] = None,
             timeout: Optional[float] = None,
             max_retries: Optional[int] = None)

初始化 TogetherAIGenerator。

参数:

  • api_key:Together API 密钥。
  • model: 要使用的模型名称。
  • api_base_url:Together AI API 的基础 URL。
  • streaming_callback: 当从流中接收到新 token 时调用的回调函数。回调函数接受 StreamingChunk 作为参数。
  • system_prompt:用于文本生成的系统提示。如果未提供,则省略系统提示,并使用模型的默认系统提示。
  • generation_kwargs:用于模型的其他参数。这些参数将直接发送到 Together AI 端点。有关更多详细信息,请参阅 Together AI 文档。一些支持的参数
  • max_tokens:输出文本可以拥有的最大 token 数。
  • temperature:要使用的采样温度。值越高,模型承担的风险越大。对于更具创造性的应用,请尝试 0.9,对于有明确答案的应用,请尝试 0(argmax 采样)。
  • top_p:一种替代温度采样的核采样方法,模型会考虑具有 top_p 概率质量的 token 结果。因此,0.1 意味着只考虑构成 top 10% 概率质量的 token。
  • n:为每个提示生成多少个补全。例如,如果 LLM 获得 3 个提示且 n 为 2,它将为每个提示生成两个补全,总共生成 6 个补全。
  • stop:LLM 停止生成 token 的一个或多个序列。
  • presence_penalty:如果 token 已存在,则应用的惩罚。值越大,模型在文本中重复相同 token 的可能性就越小。
  • frequency_penalty:如果 token 已在文本中生成,则应用的惩罚。值越大,模型在文本中重复相同 token 的可能性就越小。
  • logit_bias:为特定 token 添加 logit 偏差。字典的键是 token,值是添加到该 token 的偏差。
  • timeout:Together AI 客户端调用的超时时间。如果未设置,则从OPENAI_TIMEOUT 环境变量推断,或设置为 30。
  • max_retries:如果 Together AI 返回内部错误,最大重试次数。如果未设置,则从OPENAI_MAX_RETRIES 环境变量推断,或设置为 5。

TogetherAIGenerator.to_dict

def to_dict() -> Dict[str, Any]

将此组件序列化为字典。

返回值:

序列化后的组件(字典格式)。

TogetherAIGenerator.from_dict

@classmethod
def from_dict(cls, data: dict[str, Any]) -> "TogetherAIGenerator"

从字典反序列化此组件。

参数:

  • data:此组件的字典表示。

返回值:

反序列化的组件实例。

TogetherAIGenerator.run

@component.output_types(replies=list[str], meta=list[dict[str, Any]])
def run(*,
        prompt: str,
        system_prompt: Optional[str] = None,
        streaming_callback: Optional[StreamingCallbackT] = None,
        generation_kwargs: Optional[dict[str, Any]] = None) -> dict[str, Any]

同步生成文本补全。

参数:

  • prompt:用于文本生成的输入提示字符串。
  • system_prompt:一个可选的系统提示,用于提供生成上下文或指令。如果未提供,将使用在__init__ 方法中设置的系统提示。
  • streaming_callback:当从流中收到新 token 时调用的回调函数。如果提供了该参数,它将覆盖在__init__ 方法中设置的streaming_callback
  • generation_kwargs:用于文本生成的附加关键字参数。这些参数可能会覆盖在__init__ 方法中传递的参数。支持的参数包括 temperature、max_new_tokens、top_p 等。

返回值:

包含以下键的字典

  • replies:生成的文本补全字符串列表。
  • meta:元数据字典列表,包含有关每次生成的信息,包括模型名称、结束原因和 token 使用统计信息。

TogetherAIGenerator.run_async

@component.output_types(replies=list[str], meta=list[dict[str, Any]])
async def run_async(
        *,
        prompt: str,
        system_prompt: Optional[str] = None,
        streaming_callback: Optional[StreamingCallbackT] = None,
        generation_kwargs: Optional[dict[str, Any]] = None) -> dict[str, Any]

异步生成文本补全。

参数:

  • prompt:用于文本生成的输入提示字符串。
  • system_prompt:一个可选的系统提示,用于提供生成上下文或指令。
  • streaming_callback:当从流中收到新 token 时调用的回调函数。如果提供了该参数,它将覆盖在__init__ 方法中设置的streaming_callback
  • generation_kwargs:用于文本生成的附加关键字参数。这些参数可能会覆盖在__init__ 方法中传递的参数。支持的参数包括 temperature、max_new_tokens、top_p 等。

返回值:

包含以下键的字典

  • replies:生成的文本补全字符串列表。
  • meta:元数据字典列表,包含有关每次生成的信息,包括模型名称、结束原因和 token 使用统计信息。

模块 haystack_integrations.components.generators.together_ai.chat.chat_generator

TogetherAIChatGenerator

使用 Together AI 生成模型进行文本生成。支持的模型请参阅 Together AI 文档

用户可以通过generation_kwargs 参数,将 Llama Chat Completion API 支持的任何文本生成参数直接传递给此组件,该参数位于__init__generation_kwargs 参数,将 Llama Chat Completion API 支持的任何文本生成参数直接传递给此组件,该参数位于run 方法中。

主要特性和兼容性

  • 主要兼容性:旨在与 Together AI 聊天补全端点无缝协同工作。
  • 流式支持:支持从 Together AI 聊天补全端点流式响应。
  • 可定制性:支持 Together AI 聊天补全端点支持的所有参数。

此组件使用 ChatMessage 格式来构建输入和输出,确保在基于聊天的文本生成场景中获得连贯且与上下文相关的响应。有关 ChatMessage 格式的详细信息,请参阅 Haystack 文档

有关 Together AI API 支持的参数的更多详细信息,请参阅 Together AI API 文档

使用示例

from haystack_integrations.components.generators.together_ai import TogetherAIChatGenerator
from haystack.dataclasses import ChatMessage

messages = [ChatMessage.from_user("What's Natural Language Processing?")]

client = TogetherAIChatGenerator()
response = client.run(messages)
print(response)

>>{'replies': [ChatMessage(_content='Natural Language Processing (NLP) is a branch of artificial intelligence
>>that focuses on enabling computers to understand, interpret, and generate human language in a way that is
>>meaningful and useful.', _role=<ChatRole.ASSISTANT: 'assistant'>, _name=None,
>>_meta={'model': 'meta-llama/Llama-3.3-70B-Instruct-Turbo', 'index': 0, 'finish_reason': 'stop',
>>'usage': {'prompt_tokens': 15, 'completion_tokens': 36, 'total_tokens': 51}})]}

TogetherAIChatGenerator.__init__

def __init__(*,
             api_key: Secret = Secret.from_env_var("TOGETHER_API_KEY"),
             model: str = "meta-llama/Llama-3.3-70B-Instruct-Turbo",
             streaming_callback: Optional[StreamingCallbackT] = None,
             api_base_url: Optional[str] = "https://api.together.xyz/v1",
             generation_kwargs: Optional[Dict[str, Any]] = None,
             tools: Optional[Union[List[Tool], Toolset]] = None,
             timeout: Optional[float] = None,
             max_retries: Optional[int] = None,
             http_client_kwargs: Optional[Dict[str, Any]] = None)

创建 TogetherAIChatGenerator 实例。除非另有指定,

默认模型为meta-llama/Llama-3.3-70B-Instruct-Turbo.

参数:

  • api_key:Together API 密钥。
  • model:要使用的 Together AI 聊天补全模型的名称。
  • streaming_callback: 当从流中接收到新 token 时调用的回调函数。回调函数接受 StreamingChunk 作为参数。
  • api_base_url:Together AI API 的基础 URL。有关更多详细信息,请参阅 Together AI 文档
  • generation_kwargs:用于模型的其他参数。这些参数将直接发送到 Together AI 端点。有关更多详细信息,请参阅 Together AI API 文档。一些支持的参数
  • max_tokens:输出文本可以拥有的最大 token 数。
  • temperature:要使用的采样温度。值越高,模型承担的风险越大。对于更具创造性的应用,请尝试 0.9,对于有明确答案的应用,请尝试 0(argmax 采样)。
  • top_p:一种替代温度采样的方法,称为 nucleus 采样,其中模型考虑具有 top_p 概率质量的 token 的结果。因此,0.1 意味着只考虑构成前 10% 概率质量的 token。
  • stream:是否流式传输部分进度。如果设置,token 将作为数据(仅数据)服务器发送事件(SSE)可用时发送,流的结束由 data: [DONE] 消息终止。
  • safe_prompt:是否在所有对话之前注入安全提示。
  • random_seed:用于随机采样的种子。
  • tools: 一个工具列表或 Toolset,模型可以为此准备调用。此参数可以接受一个Tool 对象列表或一个Toolset 实例。
  • timeout:Together AI API 调用的超时时间。
  • max_retries:在内部错误后联系 Together AI 的最大重试次数。如果未设置,则默认为OPENAI_MAX_RETRIES 环境变量,或设置为 5。
  • http_client_kwargs:用于配置自定义的关键字参数字典httpx.Clienthttpx.AsyncClient。有关更多信息,请参阅 HTTPX 文档

TogetherAIChatGenerator.to_dict

def to_dict() -> Dict[str, Any]

将此组件序列化为字典。

返回值:

序列化后的组件(字典格式)。