Skip to main content

Multi-provider Uzbek-friendly AI chat CLI package

Project description

ai_salom_x391

ai_salom_x391 is a Python package for a beautiful Uzbek-friendly AI chat CLI with automatic provider and model selection.

ai_salom_x391 - API kalit formatiga qarab providerni avtomatik aniqlaydigan, chiroyli CLI interfeysli, o'zbek tiliga mos AI chat paketi.

Features

  • Google Gemini, OpenAI, Anthropic Claude, DeepSeek, and local Ollama support
  • Automatic provider detection from API key format
  • Automatic best-model selection
  • Gemini default model: gemini-2.0-flash
  • Default Uzbek ethical assistant system prompt
  • Rich terminal UI with themes, welcome/status panel, header, command table, streaming markdown answers, prompt-toolkit multiline input, chat history browser, export, stats
  • Persistent chat history is loaded automatically on startup
  • Runtime theme switching with /theme
  • Google Gemini uses the new google-genai SDK, with legacy fallback
  • Retry logic, streaming support, token and approximate cost tracking
  • Thread-safe JSON history helpers

Installation

pip install .

For development:

pip install -r requirements.txt
pip install -e .

Environment Variables

You can pass API keys directly or set:

GEMINI_API_KEY=...
OPENAI_API_KEY=...
ANTHROPIC_API_KEY=...
DEEPSEEK_API_KEY=...
OLLAMA_BASE_URL=http://localhost:11434

Python Usage

Minimal usage:

import ai_salom_x391

ai_salom_x391.run(API_KEY="user_api_key")

Full usage:

ai_salom_x391.run(
    API_KEY="user_api_key",
    SYSTEM_PROMPT="Siz yordamchi AI...",
    MODEL="auto",
    PROVIDER="auto",
    TEMPERATURE=0.7,
    MAX_TOKENS=2048,
)

Beginner-friendly tuple style is also accepted:

ai_salom_x391.run(
    API_KEY="AIza...",
    PROVIDER="gemini",
    MODEL=("MODEL", "gemini-3-flash-preview"),
)

Gemini:

ai_salom_x391.run(API_KEY="AIza...")

OpenAI:

ai_salom_x391.run(API_KEY="sk-...", PROVIDER="openai", MODEL="gpt-4")

Local Ollama:

ai_salom_x391.run(PROVIDER="ollama", MODEL="llama3")

CLI Usage

ai-salom --api-key "AIza..."
ai-salom --provider openai --model gpt-4 --api-key "sk-..."
ai-salom --provider ollama --model llama3
python -m ai_salom_x391 --provider ollama --model llama3

CLI commands:

/help                 Help
/clear                Clear terminal
/model                Show current provider and model
/switch provider:X    Switch provider
/switch model:Y       Switch model
/theme [name]         List or switch themes: uzbek, minimal, cyber, dark
/history              Show conversation history
/save [md|json|txt]   Export conversation
/export [md|json|txt] Export conversation
/stats                Show token and cost stats
/exit                 Exit

O'zbekcha qo'llanma

O'rnatish:

pip install .

Ishlatish:

import ai_salom_x391

ai_salom_x391.run(API_KEY="har_qanday_provider_api_kaliti")

Paket quyidagilarni avtomatik bajaradi:

  • API key formatiga qarab providerni aniqlaydi
  • Provider ichida eng yaxshi default modelni tanlaydi
  • O'zbek tilidagi default system promptni yuboradi
  • Chiroyli terminal chat interfeysini ochadi
  • Suhbat tarixini saqlaydi va eksport qiladi

Ollama uchun API key kerak emas:

ai_salom_x391.run(PROVIDER="ollama", MODEL="llama3")

Tests

pytest

Integration tests are written with mocked provider calls, so they do not call paid APIs.

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

ai_salom_x391-2.1.1.tar.gz (17.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ai_salom_x391-2.1.1-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

Details for the file ai_salom_x391-2.1.1.tar.gz.

File metadata

  • Download URL: ai_salom_x391-2.1.1.tar.gz
  • Upload date:
  • Size: 17.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for ai_salom_x391-2.1.1.tar.gz
Algorithm Hash digest
SHA256 d6b627befb9c419cd889879c1c34c0badd674ac19cb5cb681f4ba14e42011c95
MD5 f38da01ee9e8ff68667c9ca5ba85e22f
BLAKE2b-256 6475f1bd379e45ecbfd098487350302c00fe049b180f2702352dc4b9ccaf494f

See more details on using hashes here.

File details

Details for the file ai_salom_x391-2.1.1-py3-none-any.whl.

File metadata

  • Download URL: ai_salom_x391-2.1.1-py3-none-any.whl
  • Upload date:
  • Size: 20.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for ai_salom_x391-2.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8f007e27d98a36a60ba1ade17e82843dc239f54f55c31e5e9ca98db42ca518d8
MD5 0f7f8c99fc37dfbd17314337b25a11d9
BLAKE2b-256 46f6cfbc3b8a2aca50e2c8cdac91dbcc4712c05d7f5f93fc4a443fd4ecf53e55

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page