Клиент к ИИ-платформе REG.RU
Обёртка над ai.reg.cloud. Протокол совместим с OpenAI, но у платформы свои особенности: ключ бывает открыт не ко всем моделям, отказ приходит отдельным кодом, картинки и речь доступны не всем. Что внутри: - синхронный и асинхронный клиенты - каскад моделей на случай, если часть закрыта или занята - ремонт оборванного json из ответов - чистка типографики и отлов иероглифов в русском тексте Claude-Session: https://claude.ai/code/session_01Loz5stgQZH6ofBdMqTxiJu
Этот коммит содержится в:
@@ -0,0 +1,13 @@
|
||||
"""Простейший пример. Перед запуском положите ключ в REGCLOUD_AI_KEY."""
|
||||
from regcloud_ai import RegCloudAI
|
||||
|
||||
ai = RegCloudAI()
|
||||
|
||||
print("доступные модели:")
|
||||
for m in ai.models():
|
||||
print(" ", m)
|
||||
|
||||
answer = ai.chat("Придумай короткий заголовок для ролика про локальные нейросети",
|
||||
model="qwen3.7-max", max_tokens=200)
|
||||
print(f"\n{answer.text}")
|
||||
print(f"модель {answer.model}, токенов {answer.usage.total_tokens}, {answer.seconds}с")
|
||||
@@ -0,0 +1,19 @@
|
||||
"""Каскад моделей асинхронно. Идём сверху вниз, пока кто-нибудь не ответит."""
|
||||
import asyncio
|
||||
from regcloud_ai import AsyncRegCloudAI
|
||||
from regcloud_ai.client import normalize, foreign_chars
|
||||
|
||||
CASCADE = ["claude-5-sonnet", "gpt-5.5", "qwen3.7-max", "glm-5.2"]
|
||||
|
||||
async def main():
|
||||
async with AsyncRegCloudAI() as ai:
|
||||
answer = await ai.cascade(
|
||||
"Напиши два живых предложения про нейросети. Без канцелярита и без двоеточий.",
|
||||
models=CASCADE, max_tokens=300)
|
||||
text = normalize(answer.text)
|
||||
print(f"[{answer.model}, {answer.seconds}с] {text}")
|
||||
bad = foreign_chars(text)
|
||||
if bad:
|
||||
print("внимание, чужие символы в тексте:", " ".join(bad))
|
||||
|
||||
asyncio.run(main())
|
||||
Ссылка в новой задаче
Block a user