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

Llama Stack

Llama Stack Haystack 集成

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

LlamaStackChatGenerator

使用 Llama Stack 框架实现文本生成。Llama Stack 服务器支持多种推理提供商,包括 Ollama、Together、vLLM 以及其他云提供商。有关推理提供商的完整列表,请参阅 Llama Stack 文档

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

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

使用示例:运行此示例之前,您需要设置 Llama Stack 服务器并拥有一个可用的模型。有关如何使用 Ollama 设置服务器的快速入门,请参阅 Llama Stack 文档

from haystack_integrations.components.generators.llama_stack import LlamaStackChatGenerator
from haystack.dataclasses import ChatMessage

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

client = LlamaStackChatGenerator(model="llama3.2:3b")
response = client.run(messages)
print(response)

>>{'replies': [ChatMessage(_content=[TextContent(text='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': 'llama3.2:3b', 'index': 0, 'finish_reason': 'stop',
>>'usage': {'prompt_tokens': 15, 'completion_tokens': 36, 'total_tokens': 51}})]}

<a id="haystack_integrations.components.generators.llama_stack.chat.chat_generator.LlamaStackChatGenerator.__init__"></a>

#### LlamaStackChatGenerator.\_\_init\_\_

```python
def __init__(*,
             model: str,
             api_base_url: str = "https://:8321/v1/openai/v1",
             organization: Optional[str] = None,
             streaming_callback: Optional[StreamingCallbackT] = None,
             generation_kwargs: Optional[Dict[str, Any]] = None,
             timeout: Optional[int] = None,
             tools: Optional[Union[List[Tool], Toolset]] = None,
             tools_strict: bool = False,
             max_retries: Optional[int] = None,
             http_client_kwargs: Optional[Dict[str, Any]] = None)

创建一个 LlamaStackChatGenerator 实例。要使用此聊天生成器,

您需要使用推理提供商设置 Llama Stack 服务器并拥有一个可用的模型。

参数:

  • model:用于聊天补全的模型名称。这取决于 Llama Stack 服务器使用的推理提供商。
  • streaming_callback: 当从流中接收到新 token 时调用的回调函数。回调函数接受 StreamingChunk 作为参数。
  • api_base_url:Llama Stack API 的基础 URL。如果未指定,则使用具有默认端口 8321 的本地主机。
  • organization:您的组织 ID,默认为None.
  • generation_kwargs:用于模型的其他参数。这些参数将直接发送到 Llama Stack 端点。有关更多详细信息,请参阅 Llama Stack 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:用于随机采样的种子。
  • timeout:使用 OpenAI API 进行客户端调用的超时时间。如果未设置,则默认为OPENAI_TIMEOUT 环境变量,或 30 秒。
  • tools: 一个工具列表或 Toolset,模型可以为此准备调用。此参数可以接受一个Tool 对象列表或一个Toolset 实例。
  • tools_strict:是否启用对工具调用的严格模式遵循。如果设置为True,模型将严格遵循工具定义中的parameters 字段提供的模式,但这可能会增加延迟。
  • max_retries: 在发生内部错误后联系 OpenAI 的最大重试次数。如果未设置,则默认为OPENAI_MAX_RETRIES 环境变量,或设置为 5。
  • http_client_kwargs:用于配置自定义的关键字参数字典httpx.Clienthttpx.AsyncClient。有关更多信息,请参阅 HTTPX 文档

LlamaStackChatGenerator.to_dict

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

将此组件序列化为字典。

返回值:

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

LlamaStackChatGenerator.from_dict

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

从字典反序列化此组件。

参数:

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

返回值:

反序列化的组件实例。