Skip to main content

The auxiliary tool is used to invoke the online LLM service API, supporting local caching, prompt rendering, and configuration management.

Project description

LLMQuiver

English | 简体中文

The auxiliary tool is used to invoke the online LLM service API, supporting local caching, prompt rendering, and configuration management.

Supported

  • Support Openai/Azure LLM service providers (or openai-compatible service providers).
  • Support vllm service.
  • Local caching (based on sqlite).
  • Prompt rendering (based on toml file).
  • Configuration management (based on toml file).

To Be Done

  • Multi service provider support.

Installation

pip install llm-quiver

Basic Usage

1. Direct Call Mode

Assuming you have a configuration file path/to/gpt.toml, you need to fill in your own API_KEY, content as follows:

API_TYPE = "azure_openai"
API_BASE = "https://endpoint.openai.azure.com/"
API_VERSION = "2023-05-15"
API_KEY = "********************************"
MODEL_NAME = "gpt-4o-20240513"
temperature = 0.0
max_tokens = 4096
enable_cache = true
cache_dir = "oai_cache"

Running code:

from llm_quiver import LLMQuiver

# Initialize
llm = LLMQuiver(
    config_path="path/to/gpt.toml",
)

# Text generation mode
prompt_values = ["Who are you?"]
responses = llm.generate(prompt_values)
#   Default role is system
#   ["I am an AI assistant developed by OpenAI, designed to help answer questions, provide information, and complete various tasks. How can I help you?"]

# Chat mode
messages = [[{"role": "user", "content": "Who are you?"}]]
responses = llm.chat(messages)
#   ["I am an AI assistant developed by OpenAI, designed to help answer questions, provide information, and engage in conversations. Feel free to ask me anything!"]

2. Toml Template Call Mode

First, create a TOML template file, for example hello_world.toml:

[hello_world_template]
prompt = "Hello {name}, who are you?"

Then you can use it like this:

from llm_quiver import TomlLLMQuiver

# Specify template during initialization
llm = TomlLLMQuiver(
    config_path="path/to/gpt.toml",
    toml_prompt_name="hello_world_template",
    toml_template_file="path/to/hello_world.toml"
)

# Pass template parameters
prompt_values = [dict(name="GPT")]
responses = llm.generate(prompt_values)

Configuration Guide

There are two ways to configure API keys and other parameters:

  1. Through environment variables:

Configuration can be loaded by passing parameter config_path="path/to/config.toml" or setting environment variable "export LLMQUIVER_CONFIG=path/to/config.toml". Parameters like API_TYPE, API_BASE, API_VERSION, API_KEY, MODEL_NAME can also be set in environment variables.

  1. Directly passing configuration file path:
llm = TomlLLMQuiver(
    config_path="path/to/config.toml",
    toml_prompt_name="template_name",
    toml_template_file="path/to/template.toml"
)

Configuration file example:

API_TYPE = "azure_openai"
API_BASE = "https://endpoint.openai.azure.com/"
API_VERSION = "2023-05-15"
API_KEY = "********************************"
MODEL_NAME = "gpt-4o-20240513"
temperature = 0.0
max_tokens = 4096
enable_cache = true
cache_dir = "oai_cache"

Return Value Description

  • Both generate() and chat() methods return a list of strings
  • Each element corresponds to a response for one input prompt

Notes

  1. API key must be correctly configured before use
  2. Template files must comply with TOML format specifications
  3. Input parameters must correspond to placeholders in the template

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

llm_quiver-0.3.8.tar.gz (22.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llm_quiver-0.3.8-py3-none-any.whl (23.6 kB view details)

Uploaded Python 3

File details

Details for the file llm_quiver-0.3.8.tar.gz.

File metadata

  • Download URL: llm_quiver-0.3.8.tar.gz
  • Upload date:
  • Size: 22.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for llm_quiver-0.3.8.tar.gz
Algorithm Hash digest
SHA256 70158aadc840a42fcb1be0b60b7e71c524b4f81a76eb54bea3a7f63f1a0a0507
MD5 ff96a2d6a8e10d770cc9bfc19da879af
BLAKE2b-256 79aed11d897e57707e7474dfac4164232c175fe1eca121c016a99f83a2ae895f

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_quiver-0.3.8.tar.gz:

Publisher: publish-to-test-pypi.yml on xrandx/LLMQuiver

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_quiver-0.3.8-py3-none-any.whl.

File metadata

  • Download URL: llm_quiver-0.3.8-py3-none-any.whl
  • Upload date:
  • Size: 23.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for llm_quiver-0.3.8-py3-none-any.whl
Algorithm Hash digest
SHA256 57593da10a37d87d508729341243a2826982ee051cdad17d83498512cc795e8e
MD5 9cafb8bb41c239a858f9136bc9b22e03
BLAKE2b-256 d0e2df9e19d9c137f17576d808bb94ca96b943dc7c0b18a880d904e3423bfab4

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_quiver-0.3.8-py3-none-any.whl:

Publisher: publish-to-test-pypi.yml on xrandx/LLMQuiver

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page