Ollama
LiteLLM supports all models from Ollama
Pre-requisites
Ensure you have your ollama server running
Example usage
from litellm import completion
response = completion(
model="ollama/llama2",
messages=[{ "content": "respond in 20 words. who are you?","role": "user"}],
api_base="http://localhost:11434"
)
print(response)
Example usage - Streaming
from litellm import completion
response = completion(
model="ollama/llama2",
messages=[{ "content": "respond in 20 words. who are you?","role": "user"}],
api_base="http://localhost:11434",
stream=True
)
print(response)
for chunk in response:
print(chunk['choices'][0]['delta'])
Example usage - Streaming + Acompletion
Ensure you have async_generator installed for using ollama acompletion with streaming
pip install async_generator
async def async_ollama():
response = await litellm.acompletion(
model="ollama/llama2",
messages=[{ "content": "what's the weather" ,"role": "user"}],
api_base="http://localhost:11434",
stream=True
)
async for chunk in response:
print(chunk)
# call async_ollama
import asyncio
asyncio.run(async_ollama())
Ollama Models
Ollama supported models: https://github.com/jmorganca/ollama
Model Name | Function Call |
---|---|
Mistral | completion(model='ollama/mistral', messages, api_base="http://localhost:11434", stream=True) |
Llama2 7B | completion(model='ollama/llama2', messages, api_base="http://localhost:11434", stream=True) |
Llama2 13B | completion(model='ollama/llama2:13b', messages, api_base="http://localhost:11434", stream=True) |
Llama2 70B | completion(model='ollama/llama2:70b', messages, api_base="http://localhost:11434", stream=True) |
Llama2 Uncensored | completion(model='ollama/llama2-uncensored', messages, api_base="http://localhost:11434", stream=True) |
Code Llama | completion(model='ollama/codellama', messages, api_base="http://localhost:11434", stream=True) |
Llama2 Uncensored | completion(model='ollama/llama2-uncensored', messages, api_base="http://localhost:11434", stream=True) |
Orca Mini | completion(model='ollama/orca-mini', messages, api_base="http://localhost:11434", stream=True) |
Vicuna | completion(model='ollama/vicuna', messages, api_base="http://localhost:11434", stream=True) |
Nous-Hermes | completion(model='ollama/nous-hermes', messages, api_base="http://localhost:11434", stream=True) |
Nous-Hermes 13B | completion(model='ollama/nous-hermes:13b', messages, api_base="http://localhost:11434", stream=True) |
Wizard Vicuna Uncensored | completion(model='ollama/wizard-vicuna', messages, api_base="http://localhost:11434", stream=True) |
LiteLLM/Ollama Docker Image
For Ollama LiteLLM Provides a Docker Image for an OpenAI API compatible server for local LLMs - llama2, mistral, codellama
An OpenAI API compatible server for local LLMs - llama2, mistral, codellama
Quick Start:
Docker Hub: https://hub.docker.com/repository/docker/litellm/ollama/general
docker pull litellm/ollama
docker run --name ollama litellm/ollama
Test the server container
On the docker container run the test.py
file using python3 test.py
Making a request to this server
import openai
api_base = f"http://0.0.0.0:8000" # base url for server
openai.api_base = api_base
openai.api_key = "temp-key"
print(openai.api_base)
print(f'LiteLLM: response from proxy with streaming')
response = openai.ChatCompletion.create(
model="ollama/llama2",
messages = [
{
"role": "user",
"content": "this is a test request, acknowledge that you got it"
}
],
stream=True
)
for chunk in response:
print(f'LiteLLM: streaming response from proxy {chunk}')
Responses from this server
{
"object": "chat.completion",
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": " Hello! I acknowledge receipt of your test request. Please let me know if there's anything else I can assist you with.",
"role": "assistant",
"logprobs": null
}
}
],
"id": "chatcmpl-403d5a85-2631-4233-92cb-01e6dffc3c39",
"created": 1696992706.619709,
"model": "ollama/llama2",
"usage": {
"prompt_tokens": 18,
"completion_tokens": 25,
"total_tokens": 43
}
}
Support / talk with founders
- Schedule Demo 👋
- Community Discord 💭
- Our numbers 📞 +1 (770) 8783-106 / +1 (412) 618-6238
- Our emails ✉️ ishaan@berri.ai / krrish@berri.ai