mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-06-28 02:53:30 +00:00
parent
7df40da5fa
commit
94ffaf468c
2 changed files with 64 additions and 2 deletions
|
@ -1,5 +1,69 @@
|
|||
# Contributing to Llama Stack
|
||||
|
||||
If you are interested in contributing to Llama Stack, this guide will cover some of the key topics that might help you get started.
|
||||
|
||||
Also, check out our [Contributing Guide](https://github.com/meta-llama/llama-stack/blob/main/CONTRIBUTING.md) for more details on how to contribute to Llama Stack.
|
||||
|
||||
|
||||
|
||||
## Adding a New API Provider
|
||||
|
||||
This guide will walk you through the process of adding a new API provider to Llama Stack.
|
||||
|
||||
### Getting Started
|
||||
|
||||
1. **Choose Your API Category**
|
||||
- Determine which API category your provider belongs to (Inference, Safety, Agents, VectorIO)
|
||||
- Review the core concepts of Llama Stack in the [concepts guide](../concepts/index.md)
|
||||
|
||||
2. **Determine Provider Type**
|
||||
- **Remote Provider**: Makes requests to external services
|
||||
- **Inline Provider**: Executes implementation locally
|
||||
|
||||
Reference existing implementations:
|
||||
- {repopath}`Remote Providers::llama_stack/providers/remote`
|
||||
- {repopath}`Inline Providers::llama_stack/providers/inline`
|
||||
|
||||
Example PRs:
|
||||
- [Grok Inference Implementation](https://github.com/meta-llama/llama-stack/pull/609)
|
||||
- [Nvidia Inference Implementation](https://github.com/meta-llama/llama-stack/pull/355)
|
||||
- [Model context protocol Tool Runtime](https://github.com/meta-llama/llama-stack/pull/665)
|
||||
|
||||
3. **Register Your Provider**
|
||||
- Add your provider to the appropriate {repopath}`Registry::llama_stack/providers/registry/`
|
||||
- Specify any required pip dependencies
|
||||
|
||||
4. **Integration**
|
||||
- Update the run.yaml file to include your provider
|
||||
- To make your provider a default option or create a new distribution, look at the teamplates in {repopath}`llama_stack/templates/` and run {repopath}`llama_stack/scripts/distro_codegen.py`
|
||||
- Example PRs:
|
||||
- [Adding Model Context Protocol Tool Runtime](https://github.com/meta-llama/llama-stack/pull/816)
|
||||
|
||||
### Testing Guidelines
|
||||
|
||||
#### 1. Integration Testing
|
||||
- Create integration tests that use real provider instances and configurations
|
||||
- For remote services, test actual API interactions
|
||||
- Avoid mocking at the provider level
|
||||
- Reference examples in {repopath}`tests/client-sdk`
|
||||
|
||||
#### 2. Unit Testing (Optional)
|
||||
- Add unit tests for provider-specific functionality
|
||||
- See examples in {repopath}`llama_stack/providers/tests/inference/test_text_inference.py`
|
||||
|
||||
#### 3. End-to-End Testing
|
||||
1. Start a Llama Stack server with your new provider
|
||||
2. Test using client requests
|
||||
3. Verify compatibility with existing client scripts in the [llama-stack-apps](https://github.com/meta-llama/llama-stack-apps/tree/main) repository
|
||||
4. Document which scripts are compatible with your provider
|
||||
|
||||
### Submitting Your PR
|
||||
|
||||
1. Ensure all tests pass
|
||||
2. Include a comprehensive test plan in your PR summary
|
||||
3. Document any known limitations or considerations
|
||||
4. Submit your pull request for review
|
||||
|
||||
|
||||
```{toctree}
|
||||
:maxdepth: 1
|
||||
|
|
|
@ -4,8 +4,6 @@ In this guide, we'll walk through how you can use the Llama Stack (server and cl
|
|||
|
||||
A Llama Stack agent is a simple autonomous system that can perform tasks by combining a Llama model for reasoning with tools (e.g., RAG, web search, code execution, etc.) for taking actions.
|
||||
|
||||
At minimum, an agent requires a Llama model for inference and at least one tool that it can use.
|
||||
|
||||
In Llama Stack, we provide a server exposing multiple APIs. These APIs are backed by implementations from different providers. For this guide, we will use [Ollama](https://ollama.com/) as the inference provider.
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue