An unofficial asynchronous api wrapper for Character AI
Project description
PyCharacterAI
An unofficial asynchronous api wrapper for Character AI. For Python.
This library is based on the Character AI Unofficial Node API, made by realcoloride.
If you have any questions, problems, suggestions, please contact me:
Installation
pip install PyCharacterAI
Getting started
First, import and create a new instance of the Client class
from PyCharacterAI import Client
client = Client()
You can use
client = Client(use_plus=True)if you have character ai plus
This library allows you to authenticate in two ways:
- As a guest (Some api features are not available):
await client.authenticate_as_guest()
- Using a token:
token = 'TOKEN'
await client.authenticate_with_token(token)
Instructions for getting a token:
- Open the Character AI website in your browser
- Open the developer tools
F12and go to theApplicationtab.- Go to the
Storagesection and click onLocal Storage.- Look for the
@@auth0spajs@@::dyD3gE281MqgISG7FuIXYhL2WEknqZzv::https://auth0.character.ai/::openid profile email offline_accesskey.- Open the body and copy the access token.
вљ пёЏ Warning! Do not share this token with anyone!
Examples
Simple example:
import asyncio
from PyCharacterAI import Client
token = "TOKEN"
async def main():
client = Client()
await client.authenticate_with_token(token)
username = (await client.fetch_user())['user']['username']
print(f'Authenticated as {username}')
character_id = "iV5qb8ttzD7Ytl69U_-ONcW2tW_lrFrOVKExyKJHlJM" # Lily (by @landon)
chat = await client.create_or_continue_chat(character_id)
while True:
message = input(f'{username}: ') # In: Hi!
answer = await chat.send_message(message)
print(f"{answer.src_character_name}: {answer.text}") # Out: hello there! what kind of question you gonna ask me ? i'm here to assist you :)
asyncio.run(main())
Working with images:
We'll get a link to the image on the Character AI server, which we can use for our own purposes: attach it to a message, download it, etc.
- We can generate an image from a prompt:
prompt = "Prompt"
url = await client.generate_image(prompt)
- We can upload our own image:
image = "URL or path to the image"
url = (await client.upload_image(image))['response']
Available image formats: PNG, JPEG, WEBP.
Working with voice:
We can synthesize audio from text using one of several voices (Text to Speech)
text = "Hi all ! This is PyCharacterAI. PyCharacterAI is An unofficial asynchronous api wrapper for Character AI. For Python."
voice = 22 # Anime Girl (F) (en-US)
audio = await client.generate_voice(voice, text)
It'll return BytesIO, which we can use:
filepath = "voice.mp3" # Path to the directory where you want to save the audio
with open(filepath, 'wb') as f:
f.write(audio.read())
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
File details
Details for the file PyCharacterAI-1.0.2.tar.gz.
File metadata
- Download URL: PyCharacterAI-1.0.2.tar.gz
- Upload date:
- Size: 12.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ad8348edc11a2f26aad46f4c273fc1ad29e5b11964c495cc3bbddd395a9c268
|
|
| MD5 |
75ac7fd72b423c2374f28bc94c1ab4cd
|
|
| BLAKE2b-256 |
ab35931b1d338278377bd3f183743a024ba9b985ac2afb35916675dd6412112b
|