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

Llama.cpp

Llama.cpp 集成用于 Haystack

模块 haystack_integrations.components.generators.llama_cpp.generator

LlamaCppGenerator

提供了一个接口,用于通过 llama.cpp 生成文本,使用 LLM。

llama.cpp 是一个用 C/C++ 编写的项目,用于高效推理 LLM。它采用了量化的 GGUF 格式,适用于在标准机器(即使没有 GPU)上运行这些模型。

使用示例

from haystack_integrations.components.generators.llama_cpp import LlamaCppGenerator
generator = LlamaCppGenerator(model="zephyr-7b-beta.Q4_0.gguf", n_ctx=2048, n_batch=512)

print(generator.run("Who is the best American actor?", generation_kwargs={"max_tokens": 128}))
# {'replies': ['John Cusack'], 'meta': [{"object": "text_completion", ...}]}

LlamaCppGenerator.__init__

def __init__(model: str,
             n_ctx: Optional[int] = 0,
             n_batch: Optional[int] = 512,
             model_kwargs: Optional[Dict[str, Any]] = None,
             generation_kwargs: Optional[Dict[str, Any]] = None)

参数:

  • model:用于文本生成的量化模型的路径,例如 "zephyr-7b-beta.Q4_0.gguf"。如果模型路径也在model_kwargs 中指定,则会忽略此参数。
  • n_ctx:上下文中的 token 数量。设置为 0 时,上下文将从模型中获取。
  • n_batch:提示处理的最大批次大小。
  • model_kwargs:包含用于初始化 LLM 进行文本生成的关键字参数的字典。这些关键字参数提供对模型加载的精细控制。如果出现重复,这些 kwargs 将覆盖model, n_ctxn_batch 的初始化参数。有关可用 kwargs 的更多信息,请参阅 llama.cpp 文档
  • generation_kwargs:一个包含用于自定义文本生成的关键字参数的字典。有关可用 kwargs 的更多信息,请参阅 llama.cpp 文档

LlamaCppGenerator.run

@component.output_types(replies=List[str], meta=List[Dict[str, Any]])
def run(
    prompt: str,
    generation_kwargs: Optional[Dict[str, Any]] = None
) -> Dict[str, Union[List[str], List[Dict[str, Any]]]]

在给定的提示上运行文本生成模型。

参数:

  • prompt:要发送到生成模型的提示。
  • generation_kwargs:一个包含用于自定义文本生成的关键字参数的字典。有关可用 kwargs 的更多信息,请参阅 llama.cpp 文档

返回值:

包含以下键的字典

  • replies:模型生成的回复列表。
  • meta:有关请求的元数据。