helper functions for Ollama with Langchain
Project description
Yollama
what is this ?
This repo holds the code for helper functions for Ollama with Langchain.
prerequisites
This has been tested on a Ubuntu 24 server. You'll need:
- Ollama installed
- the Ollama models you'll need to install are:
default_llm_model_name = "llama3.1"
default_long_context_llm_model_name = "mistral-nemo"
default_reasoning_llm_model_name = "gemma2:9b"
default_sql_llm_model_name = "qwen2.5-coder"
The num_ctx
parameter is the size of the context window used to generate the next token, here we use values for a 20GB VRAM GPU.
- Python 3 with
venv
andpip
installed
basic usage
pip install yollama
get_llm()
1st parameter is the use case (Literal["default", "long-context", "reasoning", "sql"]
), which determines the model and context size.
2nd parameter is a boolean to determine if the LLM should return a JSON object or a string.
from yollama import get_llm
llm = get_llm()
# invoke default model (Llama3.1) in JSON mode
print(llm.invoke({"input_query": some_user_input}))
# invoke Mistral-Nemo model in text mode with some lengthy context
print(get_llm("long-context", False).invoke({"document": some_big_text}))
# invoke Gemma2 model in text mode, to get answers requiring more reasoning abilities
print(get_llm("reasoning", False).invoke({"question": """Owen left a tray of lemon cakes unattended in the staff room for an hour and one of the cakes went missing. Three people are suspects, and here are the facts:
Person A is allergic to citrus but was seen in the area
Person B loves lemon cake but wasn't near the location
Person C has stolen food before and similar incidents increased after they arrived
Who is most likely responsible and why?"""}))
# invoke Qwen2.5-Coder model in text mode, to get a raw SQL query
print(get_llm("sql", False).invoke({"query": "create a SQL query to get the latest headlines"}))
philosophy
fully local models
I've decided to let go of OpenAI to:
- preserve my privacy
- save money
As local models are getting better and better, I'm confident that I'll be able to have a greater experience in the future, even with my small 20GB VRAM GPU. 🤔 Of course, it's not fast, but hey everything comes with tradeoffs right? 💪
contributions guidelines
🤝 I haven't made up my mind on contribution guidelines yet. I guess we'll update them as you contribute!
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file yollama-1.2.0.tar.gz
.
File metadata
- Download URL: yollama-1.2.0.tar.gz
- Upload date:
- Size: 3.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 676b758fe03396418b582f72c056bda1695ac13f4d6907b86aebb8f9cb9db5d7 |
|
MD5 | eb23850ac50797272e471f8da1bbb502 |
|
BLAKE2b-256 | 9952d907def14e4b7500bdc12f19333152b31b8de03549313c0445711ead0413 |
File details
Details for the file yollama-1.2.0-py3-none-any.whl
.
File metadata
- Download URL: yollama-1.2.0-py3-none-any.whl
- Upload date:
- Size: 4.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4f8f0b6357bb60490ea17f215aed0d498ac159e92744eae37534d63fc2e6ca4 |
|
MD5 | 447f52cf090eea31f40e8b61e6396269 |
|
BLAKE2b-256 | 77d6a58cb2c57024740376e1e955798220f52b53375d4f6482cebea5c8bea62b |