Make API usage cheap! Caching wrapper for third party APIs.
Project description
Cheapi (cheap API)
Lightweight wrapper to cache expensive function results in-memory or on disk.
Installation
pip install cheapi
Usage
from cheapi import CachingWrapper
import openai
def _ask_chatgpt(prompt):
res = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": "You are a helpful assistant for a software engineer."},
{"role": "user", "content": prompt}
],
temperature=0,
timeout=10,
)
choice, *_ = res["choices"]
usage = res["usage"]["total_tokens"]
print(f"OpenAI usage: {usage}")
result = choice["message"]["content"]
return result
ash_chatgpt = CachingWrapper(_ask_chatgpt, cache_backend="memory")
for i in range(2):
print(ash_chatgpt("Write a short joke about caching?") + "\n")
or even simpler:
from cheapi import cached
@cached(cache_backend="memory")
def ask_chatgpt(prompt):
...
for i in range(2):
print(ask_chatgpt("Write a short joke about caching?") + "\n")
Caching backends
Using memory backend is mostly equivalent to using functools.lru_cache but with more configuration.
SQLite backend is useful for persistent caching, and is similar to joblib.Memory.
Cloud backend is being dreamed of, but not implemented yet.
Why?
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cheapi-0.1.0.tar.gz.
File metadata
- Download URL: cheapi-0.1.0.tar.gz
- Upload date:
- Size: 4.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.2 CPython/3.9.11 Darwin/22.2.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4168452a5211974c164e590b52bed04ab625592955a4798f85a5e79cf216b993
|
|
| MD5 |
6889f4bc29557c412d0c0382f7d325fb
|
|
| BLAKE2b-256 |
7c87ce7cb4190c4a2fea5159068b1fe0819d59d4fcad9ec27f7d1e449acd0ceb
|
File details
Details for the file cheapi-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cheapi-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.2 CPython/3.9.11 Darwin/22.2.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5e4a8687305d525c18f1369bc655df08db95f444ef767e0611561873b75fca5
|
|
| MD5 |
673b718546a88459e710156c43f165df
|
|
| BLAKE2b-256 |
27b2ebc34ce8436e5e5450888aee224beeb20986491f23e860b0ee475f72a7f9
|