AKGPT - Python клиент для Pollinations.ai API
AKGPT - это мощная Python библиотека для взаимодействия с API от Pollinations.ai. Поддерживает работу с текстом, изображениями и аудио через различные AI модели.
🚀 Новые возможности v0.1.0
- ✅ Поддержка всех 19 моделей Pollinations.ai
- ✅ Встроенный API ключ (не требует настройки)
- ✅ Работа с изображениями (base64)
- ✅ Работа с аудио файлами (base64)
- ✅ Генерация речи из текста (24 голоса)
- ✅ Улучшенная типизация и документация
- ✅ Автоматическое кодирование файлов в base64
📦 Установка
pip install akgpt
🔑 Инициализация
from akgpt import AKGPT
# Инициализация (API ключ уже встроен в библиотеку)
client = AKGPT()
📝 Текстовые запросы
Базовый запрос
result = client.query("Привет! Расскажи о себе.", model="openai")
if result:
content = result['choices'][0]['message']['content']
print(content)
Запрос с системным промптом
result = client.query(
prompt="Напиши стихотворение о роботах",
model="mistral",
system="Ты талантливый поэт",
max_tokens=150,
temperature=0.7
)
Получение списка моделей
models = client.get_available_models()
print(f"Доступно моделей: {len(models)}")
print(models)
🖼️ Работа с изображениями
Анализ изображения
# Кодирование изображения в base64
image_base64 = client.encode_image_to_base64("path/to/image.jpg")
# Запрос с изображением
result = client.query_with_image(
prompt="Опиши это изображение",
image_base64=image_base64,
model="openai",
max_tokens=300
)
if result:
description = result['choices'][0]['message']['content']
print(description)
Пример с системным промптом
result = client.query_with_image(
prompt="Что ты видишь на этом изображении?",
image_base64=image_base64,
model="openai",
system="Ты эксперт по анализу изображений",
max_tokens=200
)
🎵 Работа с аудио
Транскрипция аудио
# Кодирование аудио в base64
audio_base64 = client.encode_audio_to_base64("path/to/audio.wav")
# Запрос с аудио
result = client.query_with_audio(
prompt="Расшифруй это аудио",
audio_base64=audio_base64,
audio_format="wav",
model="openai-audio"
)
if result:
transcription = result['choices'][0]['message']['content']
print(transcription)
Анализ аудио с системным промптом
result = client.query_with_audio(
prompt="Проанализируй эмоции в этом аудио",
audio_base64=audio_base64,
audio_format="wav",
model="openai-audio",
system="Ты эксперт по анализу эмоций в речи"
)
🎤 Генерация речи из текста
Базовое преобразование текста в речь
# Генерация речи с голосом по умолчанию (nova)
audio_data = client.text_to_speech("Привет! Это тестовая генерация речи.")
# Сохранение в файл
if audio_data:
client.save_audio(audio_data, "speech.wav")
print("Аудио файл сохранен!")
Выбор голоса
# Получение списка доступных голосов
voices = client.get_available_voices()
print(f"Доступно голосов: {len(voices)}")
print("Первые 5 голосов:", voices[:5])
# Генерация с выбранным голосом
audio_data = client.text_to_speech(
text="Привет! Меня зовут Nova и я говорю этим голосом.",
voice="nova"
)
# Сохранение
if audio_data:
client.save_audio(audio_data, "nova_speech.wav")
Примеры с разными голосами
# Мужские голоса
audio_data = client.text_to_speech("Привет, я мужской голос", voice="onyx")
client.save_audio(audio_data, "male_voice.wav")
# Женские голоса
audio_data = client.text_to_speech("Привет, я женский голос", voice="shimmer")
client.save_audio(audio_data, "female_voice.wav")
# Креативные голоса
audio_data = client.text_to_speech("Привет, я креативный голос", voice="coral")
client.save_audio(audio_data, "creative_voice.wav")
🤖 Поддерживаемые модели
Библиотека поддерживает все 19 моделей Pollinations.ai:
- Текстовые модели:
openai,mistral,gemini,nova-fast,openai-fast,openai-large,openai-reasoning - Специализированные:
deepseek-reasoning,qwen-coder,roblox-rp - Креативные:
bidara,evil,midijourney,mirexa,rtist,sur,unity - Аудио:
openai-audio - Экспериментальные:
gpt-5-nano
🎤 Поддерживаемые голоса
Библиотека поддерживает 24 голоса для генерации речи:
- Классические:
alloy,echo,fable,onyx,nova,shimmer - Креативные:
coral,verse,ballad,ash,sage - Специальные:
amuch,aster,brook,clover,dan,elan,marilyn,meadow,jazz,rio - Персональные:
megan-wetherall,jade-hardy,megan-wetherall-2025-03-07
📋 Параметры методов
query() - Текстовые запросы
prompt(str): Текстовый промптmodel(str): Модель для использования (по умолчанию "openai")system(str): Системный промптmax_tokens(int): Максимальное количество токеновtemperature(float): Температура генерации (0.0-2.0)top_p(float): Параметр top_p (0.0-1.0)presence_penalty(float): Штраф за присутствие (-2.0 до 2.0)frequency_penalty(float): Штраф за частоту (-2.0 до 2.0)stream(bool): Потоковая передача
query_with_image() - Запросы с изображениями
prompt(str): Текстовый промптimage_base64(str): Изображение в base64model(str): Модель (по умолчанию "openai")system(str): Системный промптmax_tokens(int): Максимальное количество токенов
query_with_audio() - Запросы с аудио
prompt(str): Текстовый промптaudio_base64(str): Аудио в base64audio_format(str): Формат аудио (по умолчанию "wav")model(str): Модель (по умолчанию "openai-audio")system(str): Системный промпт
text_to_speech() - Генерация речи
text(str): Текст для преобразования в речьvoice(str): Голос (по умолчанию "nova")model(str): Модель (по умолчанию "openai-audio")
save_audio() - Сохранение аудио
audio_data(bytes): Аудио данныеfilename(str): Имя файла для сохранения
🔧 Вспомогательные методы
Кодирование файлов
# Кодирование изображения
image_base64 = client.encode_image_to_base64("image.jpg")
# Кодирование аудио
audio_base64 = client.encode_audio_to_base64("audio.wav")
Получение информации
# Список доступных моделей
models = client.get_available_models()
# Список доступных голосов
voices = client.get_available_voices()
# Проверка API ключа
print(f"API ключ: {client.api_key[:10]}...")
📚 Полный пример использования
from akgpt import AKGPT
import json
# Инициализация
client = AKGPT()
# 1. Текстовый запрос
print("=== ТЕКСТОВЫЙ ЗАПРОС ===")
result = client.query("Расскажи анекдот", model="mistral")
if result:
print(result['choices'][0]['message']['content'])
# 2. Работа с изображением
print("\n=== АНАЛИЗ ИЗОБРАЖЕНИЯ ===")
image_base64 = client.encode_image_to_base64("photo.jpg")
if image_base64:
result = client.query_with_image(
"Опиши это изображение",
image_base64,
model="openai"
)
if result:
print(result['choices'][0]['message']['content'])
# 3. Работа с аудио
print("\n=== ТРАНСКРИПЦИЯ АУДИО ===")
audio_base64 = client.encode_audio_to_base64("recording.wav")
if audio_base64:
result = client.query_with_audio(
"Расшифруй это аудио",
audio_base64,
model="openai-audio"
)
if result:
print(result['choices'][0]['message']['content'])
# 4. Генерация речи
print("\n=== ГЕНЕРАЦИЯ РЕЧИ ===")
voices = client.get_available_voices()
print(f"Доступно голосов: {len(voices)}")
audio_data = client.text_to_speech("Привет! Это тестовая генерация речи.", voice="nova")
if audio_data:
client.save_audio(audio_data, "test_speech.wav")
print("Аудио файл сохранен!")
# 5. Информация о моделях
print("\n=== ДОСТУПНЫЕ МОДЕЛИ ===")
models = client.get_available_models()
print(f"Всего моделей: {len(models)}")
for i, model in enumerate(models[:5], 1):
print(f"{i}. {model}")
⚠️ Важные замечания
- API ключ: Встроен в библиотеку, дополнительная настройка не требуется
- Форматы файлов: Поддерживаются стандартные форматы изображений (JPEG, PNG) и аудио (WAV, MP3)
- Размер файлов: Следите за ограничениями API на размер файлов
- Модели: Некоторые модели могут быть недоступны или иметь ограничения
🐛 Обработка ошибок
result = client.query("Тестовый запрос")
if result is None:
print("Произошла ошибка при запросе к API")
else:
print("Запрос выполнен успешно")
📄 Лицензия
Эта библиотека распространяется под лицензией MIT. Подробности см. в файле LICENSE.
🔄 История версий
- v0.1.0: Добавлена поддержка изображений, аудио, генерации речи и всех моделей Pollinations.ai
- v0.0.2: Базовая функциональность для текстовых запросов
Release files for akgpt 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| akgpt-0.1.0.tar.gz | 11.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| akgpt-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.4 kB
Release files / akgpt-0.1.0.tar.gz
| Download URL | akgpt-0.1.0.tar.gz |
|---|---|
| Size | 11.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4e4bab6e42928344b212953bef38f961e001e5e9f73ebc877ec92de2b2c1df90
|
|
BLAKE2b-256 checksum How to use checksums |
d2eeb7ddc0a3ddafe1fea1a026f21aa0abf6c610b79c303942d20a57b6ec15b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / akgpt-0.1.0-py3-none-any.whl
| Download URL | akgpt-0.1.0-py3-none-any.whl |
|---|---|
| Size | 9.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9408a72dd6cea1154096d815445d7436e3e2909ef018d5507509dcb824e624c0
|
|
BLAKE2b-256 checksum How to use checksums |
3ebfcf035b59a9a01bbacf991a8af2e57faa86be674149a67b92dab507e75867
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|