An unofficial async/sync client library for Straico API
Project description
Async Client Libary for the Straico API
A client side implementation of Straico API.
Installation
# install from PyPI
pip install aio-straico
Usage
Please see the official Straico API documentation https://documenter.getpostman.com/view/5900072/2s9YyzddrR
Basic Prompt Completion
from aio_straico import straico_client
from aio_straico.utils import cheapest_model
def main():
with straico_client(API_KEY="ko-11111111111111111111111111") as client:
user_info = client.user()
print(user_info)
"""
{'coins': 100000.00,
'first_name': 'User',
'last_name': 'Name',
'plan': 'License Tier 1'}
"""
models = client.models()
cheapest_chat_model = cheapest_model(models)
print(cheapest_chat_model)
"""
{'name': 'Google: Gemma 2 27B',
'model': 'google/gemma-2-27b-it',
'word_limit': 3072,
'pricing': {'coins': 0.4,
'words': 100}}
"""
reply = client.prompt_completion(cheapest_chat_model, "Hello there")
print(reply["completion"]["choices"][0]["message"]["content"])
"""
General Kenobi! 👋
What can I do for you today? 😊
"""
if __name__=="__main__":
main()
Async Basic Prompt Completion
from aio_straico import aio_straico_client
from aio_straico.utils import cheapest_model
async def main():
async with aio_straico_client(API_KEY="ko-11111111111111111111111111") as client:
user_info = await client.user()
print(user_info)
"""
{'coins': 100000.00,
'first_name': 'User',
'last_name': 'Name',
'plan': 'License Tier 1'}
"""
models = await client.models()
cheapest_chat_model = cheapest_model(models)
print(cheapest_chat_model)
"""
{'name': 'Google: Gemma 2 27B',
'model': 'google/gemma-2-27b-it',
'word_limit': 3072,
'pricing': {'coins': 0.4,
'words': 100}}
"""
reply = await client.prompt_completion(cheapest_chat_model, "Hello there")
print(reply["completion"]["choices"][0]["message"]["content"])
"""
General Kenobi! 👋
What can I do for you today? 😊
"""
asyncio.run(main())
when API_KEY
is not set in aio_straico_client, it will use the value from environment variable STRAICO_API_KEY
.
If no environment variable is found the program will raise an error.
You can also set the model name manually
reply = await client.prompt_completion("openai/gpt-4o-mini", "Hello there")
print(reply["completion"]["choices"][0]["message"]["content"])
"""
General Kenobi! 👋
What can I do for you today? 😊
"""
Example Async Code
While the code below is async code, it can also be executed in a non-async mode by removing "await" and using the code with straico_client
as shown in the "Basic Prompt Completion" section.
Add file attachment and Transcript
mp3_files = [*Path("test_data/audio/").glob("*.mp3")]
response = await client.prompt_completion(
"openai/gpt-4o-mini",
"summarize the main points",
files=mp3_files,
display_transcripts=True,
)
print("## Summary")
print(
response["completions"]["openai/gpt-4o-mini"]["completion"]["choices"][0][
"message"
]["content"]
)
print("## Transcript")
for transcript in response["transcripts"]:
print("Name:", transcript["name"])
print("Transcript:", transcript["text"])
print()
"""
## Summary
The . . .
## Transcript
Name: . . .
Transcript: . . .
"""
Add Youtube URL and Transcript
youtube_url = "https://www.youtube.com/watch?v=zWPe_CUR4yU"
response = await client.prompt_completion(
"openai/gpt-4o-mini",
"summarize the main points",
youtube_urls=youtube_url,
display_transcripts=True,
)
print("## Summary")
print(
response["completions"]["openai/gpt-4o-mini"]["completion"]["choices"][0][
"message"
]["content"]
)
print("## Transcript")
for transcript in response["transcripts"]:
print("Name:", transcript["name"])
print("Transcript:", youtube_trasncript_to_plain_text(transcript["text"]))
print()
"""
## Summary
The . . .
## Transcript
Name: . . .
Transcript: . . .
"""
Image Generation
Generate images and download zip file to local directory
model ="openai/dall-e-3"
directory = Path(".")
zip_file_path = await client.image_generation_as_zipfile(
model=model,
description="A cute cat",
size=ImageSize.square,
variations=4,
destination_zip_path=directory,
)
Generate images and download image files to local directory
model ="openai/dall-e-3"
directory = Path(".")
image_paths = await client.image_generation_as_images(
model=model,
description="A cute cat",
size=ImageSize.landscape,
variations=4,
destination_zip_path=directory,
)
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 aio_straico-0.0.7.tar.gz
.
File metadata
- Download URL: aio_straico-0.0.7.tar.gz
- Upload date:
- Size: 10.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2725589db2ca7aec38e7692f8ecb07d857fdaa72e6ae207857726b7bd29518e |
|
MD5 | 45dbd9587499ae01172191ba949b55a0 |
|
BLAKE2b-256 | b6b2551090713de1a9202d949308473c7bd91db788466508e2d1acc369fd2096 |
File details
Details for the file aio_straico-0.0.7-py3-none-any.whl
.
File metadata
- Download URL: aio_straico-0.0.7-py3-none-any.whl
- Upload date:
- Size: 12.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef21d5163d3d177335ba257e7257abe9a2825049e56a1293f59f0ed0542f1c2d |
|
MD5 | 06c917843dcb4cd216d140e959a2c11c |
|
BLAKE2b-256 | ca28ba743ad4e61951974adffe16871eaa97097be5f194a224bec5244cdc1395 |