A library for 'gemini' languagemodels without unnecessary dependencies.
Project description
castor-pollux
Castor-Pollux (the twin sons of Zeus, routinely called 'gemini') is a pure REST API library for interacting with Google Generative AI API.
Without (!!!):
- any whiff of 'Vertex' or GCP;
- any signs of 'Pydantic' or unnecessary (and mostly useless) typing;
- any other dependencies of other google packages trashed into the dumpster
google-genaipackage.
Installation:
pip install castor-pollux
Then:
# Python
import castor_pollux.rest as cp
A text continuation request:
import castor_pollux.rest as cp
from yaml import safe_load as yl
kwargs = """ # this is a string in YAML format
model: gemini-2.5-pro-exp-03-25 # thingking model
# system_instruction: '' # will prevail if put here
mime_type: text/plain #
modalities:
- TEXT # text for text
max_tokens: 10000
n: 2 # 1 is not mandatory
stop_sequences:
- STOP
- "\nTitle"
temperature: 0.5 # 0 to 1.0
top_k: 10 # number of tokens to consider.
top_p: 0.5 # 0 to 1.0
thinking: 24576 # max thinking tokens budget;
# 0 to prevent 'thinking'
"""
instruction = 'You are Joseph Jacobs, you retell folk tales.'
text_to_continue = 'Once upon a time, when pigs drank wine '
machine_responses = cp.continuation(
text=text_to_continue,
instruction=instruction,
**yl(kwargs)
)
A multi-turn conversation continuation request:
import castor_pollux.rest as cp
from yaml import safe_load as yl
kwargs = """ # this is a string in YAML format
model: gemini-2.5-pro-exp-03-25 # thingking model
# system_instruction: '' # will prevail if put here
mime_type: text/plain #
modalities:
- TEXT # text for text
max_tokens: 10000
n: 1 # 1 is not mandatory
stop_sequences:
- STOP
- "\nTitle"
temperature: 0.5 # 0 to 1.0
top_k: 10 # number of tokens to consider.
top_p: 0.5 # 0 to 1.0
thinking: 24576 # max thinking tokens budget;
# 0 to prevent 'thinking'
"""
previous_turns = """
- role: user
parts:
- text: Can we change human nature?
- role: model
parts:
- text: Of course, nothing can be simpler. You just re-educate them.
"""
human_response_to_the_previous_turn = 'That is not true. Think again.'
instruction = 'I am an expert in critical thinking. I analyse.'
machine_responses = cp.continuation(
text=human_response_to_the_previous_turn,
contents=yl(previous_turns),
instruction=instruction,
**yl(kwargs)
)
Recorder, logs, records and multi-turn conversations
castor-pollux can work with grammateus recorder if you pass an initialized instance of it in your calls.
from yaml import safe_load as yl
from grammateus import Grammateus
from castor_pollux import rest as cp
records = '/home/<user>/Documents/Fairytales/'
kwargs = """ # this is a string in YAML format
model: gemini-2.5-flash-preview-04-17
mime_type: text/plain
modalities:
- TEXT
max_tokens: 32000
n: 1 # no longer a mandatory 1
stop_sequences:
- STOP
- "\nTitle"
temperature: 0.5
top_k: 10
top_p: 0.5
thinking: 24576 # thinking tokens budget. 24576
"""
instruction = 'I am Joseph Jacobs. I retell folk tales'
text_to_continue = 'Once upon a time, when pigs drank wine'
machine_text = cp.continuation(
text=text_to_continue,
instruction=instruction,
recorder=Grammateus(records), # https://pypi.org/project/grammateus/
**yl(kwargs)
)
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 castor_pollux-0.0.12.tar.gz.
File metadata
- Download URL: castor_pollux-0.0.12.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13a0290b665900cfd863361d1d1534ebdee820110c38241c7d659af47520142b
|
|
| MD5 |
259bd99edfb5b9007174b7e5af9a0a4d
|
|
| BLAKE2b-256 |
9904bdb8bb352daa2171d6b56c30169d6b05c8dfb716fdd7c94b9b83596bf91b
|
File details
Details for the file castor_pollux-0.0.12-py3-none-any.whl.
File metadata
- Download URL: castor_pollux-0.0.12-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2fb8e1006a15aaeed00e6b43e3f6a0215de8a76ad7e3f7ee522483a82e1b1964
|
|
| MD5 |
7fec1dc2eaaf89a5e85b9fa02799c780
|
|
| BLAKE2b-256 |
90abd59eee2f927b7953f043d9d85adea06d8244b0802618620ce51cb32485c5
|