forked from phoenix-oss/llama-stack-mirror
* docker compose ollama * comment * update compose file * readme for distributions * readme * move distribution folders * move distribution/templates to distributions/ * rename * kill distribution/templates * readme * readme * build/developer cookbook/new api provider * developer cookbook * readme * readme * [bugfix] fix case for agent when memory bank registered without specifying provider_id (#264) * fix case where memory bank is registered without provider_id * memory test * agents unit test * Add an option to not use elastic agents for meta-reference inference (#269) * Allow overridding checkpoint_dir via config * Small rename * Make all methods `async def` again; add completion() for meta-reference (#270) PR #201 had made several changes while trying to fix issues with getting the stream=False branches of inference and agents API working. As part of this, it made a change which was slightly gratuitous. Namely, making chat_completion() and brethren "def" instead of "async def". The rationale was that this allowed the user (within llama-stack) of this to use it as: ``` async for chunk in api.chat_completion(params) ``` However, it causes unnecessary confusion for several folks. Given that clients (e.g., llama-stack-apps) anyway use the SDK methods (which are completely isolated) this choice was not ideal. Let's revert back so the call now looks like: ``` async for chunk in await api.chat_completion(params) ``` Bonus: Added a completion() implementation for the meta-reference provider. Technically should have been another PR :) * Improve an important error message * update ollama for llama-guard3 * Add vLLM inference provider for OpenAI compatible vLLM server (#178) This PR adds vLLM inference provider for OpenAI compatible vLLM server. * Create .readthedocs.yaml Trying out readthedocs * Update event_logger.py (#275) spelling error * vllm * build templates * delete templates * tmp add back build to avoid merge conflicts * vllm * vllm --------- Co-authored-by: Ashwin Bharambe <ashwin.bharambe@gmail.com> Co-authored-by: Ashwin Bharambe <ashwin@meta.com> Co-authored-by: Yuan Tang <terrytangyuan@gmail.com> Co-authored-by: raghotham <rsm@meta.com> Co-authored-by: nehal-a2z <nehal@coderabbit.ai>
20 lines
1.4 KiB
Markdown
20 lines
1.4 KiB
Markdown
# Developer Guide: Adding a New API Provider
|
|
|
|
This guide contains references to walk you through
|
|
|
|
### Adding a new API provider
|
|
1. First, decide which API your provider falls into (e.g. Inference, Safety, Agents, Memory).
|
|
2. Decide whether your provider is a remote provider, or inline implmentation. A remote provider is a provider that makes a remote request to an service. An inline provider is a provider where implementation is executed locally. Checkout the examples, and follow the structure to add your own API provider. Please find the following code pointers:
|
|
- [Inference Remote Adapter](../llama_stack/providers/adapters/inference/)
|
|
- [Inference Inline Provider](../llama_stack/providers/impls/)
|
|
3. [Build a Llama Stack distribution](./building_distro.md) with your API provider.
|
|
4. Test your code!
|
|
|
|
### Testing your newly added API providers
|
|
1. Start Llama Stack server with your
|
|
2. Test with sending a client request to the server.
|
|
3. Add tests for your newly added provider. See [tests/](../tests/) for example unit tests.
|
|
4. Test the supported functionalities for your provider using our providers tests infra. See [llama_stack/providers/tests/<api>/test_<api>](../llama_stack/providers/tests/inference/test_inference.py).
|
|
|
|
### Submit your PR
|
|
After you have fully tested your newly added API provider, submit a PR with the attached test plan, and we will help you verify the necessary requirements.
|