添加新的 API 提供者

本指南将引导您完成向 Llama Stack 添加新的 API 提供者的过程。

  • 首先回顾 Llama Stack 的核心概念,然后选择您的提供者所属的 API(推理、安全性、VectorIO 等)。

  • 确定提供者类型(远程内联)。远程提供者向外部服务发出请求,而内联提供者则在本地执行实现。

  • 将您的提供者添加到相应的注册中心。指定必要的 pip 依赖项。

  • 更新任何分发版模板build.yamlrun.yaml文件,如果它们默认应包含您的提供者。如有必要,运行./scripts/distro_codegen.py。请注意,如果新提供者导致任何分发版模板尝试导入提供者特定的依赖项,则distro_codegen.py将会失败。这通常意味着该分发版的get_distribution_template()代码路径应仅从每个提供者导入任何必要的 Config 或模型别名定义,而不是提供者的实际实现。

以下是一些示例 PR,可帮助您入门

测试提供者

在运行测试之前,必须安装所需的依赖项。这取决于您正在测试的提供者或分发版。例如,如果您正在测试together分发版,则应通过llama stack build --template together安装依赖项。

1. 集成测试

集成测试位于tests/integration中。这些测试使用 Python 客户端 SDK API(来自llama_stack_client包)来测试功能。由于这些测试使用客户端 API,因此可以通过指向 Llama Stack 服务器实例或使用LlamaStackAsLibraryClient“内联”运行它们。

请查阅tests/integration/README.md以获取有关如何运行测试的更多详情。

请注意,每个提供者的sample_run_config()方法(在该提供者的配置类中)通常会引用一些环境变量来指定 API 密钥等。您可以在环境中设置这些变量,或通过--env标志将其传递给测试命令。

2. 单元测试

单元测试位于tests/unit中。提供者特定的单元测试位于tests/unit/providers中。所有这些测试都会作为 CI 过程的一部分自动运行。

请查阅tests/unit/README.md以获取有关如何手动运行测试的更多详情。

3. 额外的端到端测试

  1. 使用您的新提供者启动 Llama Stack 服务器

  2. 验证与llama-stack-apps仓库中现有客户端脚本的兼容性

  3. 记录哪些脚本与您的提供者兼容

提交您的 PR

  1. 确保所有测试通过

  2. 在您的 PR 摘要中包含一个全面的测试计划

  3. 记录任何已知限制或注意事项