Skip to main content

🧠 ODAM V4 Python SDK

PyPI version Python 3.8+ License: MIT Documentation

Офіційний Python SDK для інтеграції з ODAM V4 - революційною системою штучного інтелекту з людською пам'яттю.

🌟 Особливості

  • 🧠 Розумні чат-відповіді з контекстуальною пам'яттю
  • 💾 Система людської пам'яті - запам'ятовує кожного користувача назавжди
  • 🏥 Медичні NLP сутності з точністю 90%+
  • 🌐 Багатомовність - підтримка 15+ мов з автоматичним визначенням
  • 🕸️ Граф знань - складні взаємозв'язки між сутностями
  • 🎨 Персоналізація - унікальний досвід для кожного користувача
  • ⚡ Real-time обробка - відповідь за < 100мс
  • 🚀 Enterprise V7 - 98-100% персоналізація з Memory Enforcement
  • 🛡️ Medical Safety - гарантована медична безпека

📦 Встановлення

# Встановлення з PyPI
pip install odam-sdk

# Або з GitHub
pip install git+https://github.com/odam-ai/odam-sdk-python.git

🚀 Швидкий старт

Базовий приклад

from odam_sdk import ODAMClient

# Створення клієнта
client = ODAMClient(api_key="your_api_key")

# Відправка повідомлення
response = client.chat(
    message="Привіт! Як справи?",
    user_id="user_123"
)

print(response.response)
print(f"Сутності: {response.entities}")
print(f"Пам'ять оновлена: {response.memory_stats.memories_created}")

Розширений приклад

from odam_sdk import ODAMClient, Language, MemoryType

# Створення клієнта з налаштуваннями
client = ODAMClient(
    api_key="your_api_key",
    base_url="https://api.odam.dev",
    timeout=30,
    enable_logging=True
)

# Відправка повідомлення з усіма опціями
response = client.chat(
    message="Я хочу записатися до лікаря на наступний тиждень",
    user_id="user_maria_456",
    session_id="session_789",
    language=Language.UKRAINIAN,
    use_memory=True,
    use_medical_nlp=True,
    use_graph_search=True,
    enterprise_v7=True,
    medical_safety=True,
    context={
        "source": "mobile_app",
        "location": "kyiv",
        "user_type": "patient"
    }
)

# Аналіз відповіді
print(f"Відповідь: {response.response}")
print(f"Мова: {response.language_info.language}")
print(f"Сутності: {len(response.entities)} знайдено")
print(f"Пам'ять: {response.memory_stats.memories_found} спогадів знайдено")
print(f"Персоналізація: {response.personalization_score:.2%}")

# Отримання пам'яті користувача
memories = client.get_memory(
    user_id="user_maria_456",
    memory_type=MemoryType.EPISODIC,
    limit=10
)

print(f"Спогади користувача: {len(memories.memories)}")

📚 Основні методи

💬 Чат

# Простий чат
response = client.chat("Привіт!", "user_123")

# Чат з контекстом
response = client.chat(
    message="Нагадай мені про зустріч",
    user_id="user_123",
    context={"app": "calendar", "priority": "high"}
)

# Batch обробка
messages = [
    {"message": "Привіт!", "user_id": "user_1"},
    {"message": "Як справи?", "user_id": "user_2"}
]
batch_response = client.chat_batch(messages)

🧠 Пам'ять

# Отримання всіх спогадів
memories = client.get_memory("user_123")

# Отримання конкретного типу пам'яті
episodic_memories = client.get_memory(
    user_id="user_123",
    memory_type=MemoryType.EPISODIC,
    limit=20
)

# Отримання пам'яті за період
recent_memories = client.get_memory(
    user_id="user_123",
    start_date=datetime(2024, 1, 1),
    end_date=datetime(2024, 12, 31)
)

🏥 Сутності

# Витягування сутностей
entities = client.extract_entities(
    text="Доктор Петренко призначив аспірин 500мг 2 рази на день",
    medical_mode=True
)

print(f"Знайдено сутностей: {len(entities.entities)}")
for entity in entities.entities:
    print(f"- {entity.text} ({entity.type})")

🕸️ Граф знань

# Пошук в графі знань
graph_results = client.search_graph(
    query="лікарі в Києві",
    user_id="user_123",
    depth=3,
    limit=50
)

print(f"Знайдено вузлів: {len(graph_results.nodes)}")
print(f"Знайдено зв'язків: {len(graph_results.relationships)}")

📊 Аналітика

# Отримання аналітики
analytics = client.get_analytics(
    user_id="user_123",
    start_date=datetime(2024, 1, 1),
    metrics=["conversations", "entities", "memory_usage"]
)

print(f"Аналітика: {analytics}")

⚙️ Конфігурація

Environment Variables

# .env файл
ODAM_API_KEY=your_api_key_here
ODAM_BASE_URL=https://api.odam.dev
ODAM_TIMEOUT=30
ODAM_LOG_LEVEL=INFO
ODAM_ENABLE_CACHE=true

Програмна конфігурація

from odam_sdk import ODAMClient, ODAMConfig

# Створення конфігурації
config = ODAMConfig(
    api_key="your_api_key",
    base_url="https://api.odam.dev",
    timeout=30,
    max_retries=3,
    enable_logging=True,
    enable_cache=True,
    enterprise_v7_enabled=True,
    medical_safety_enabled=True
)

# Створення клієнта з конфігурацією
client = ODAMClient(config=config)

🔧 Розширені можливості

Context Manager

# Автоматичне закриття ресурсів
with ODAMClient(api_key="your_key") as client:
    response = client.chat("Привіт!", "user_123")
    print(response.response)

Retry логіка

# Автоматичні повторні спроби при помилках
@retry_on_failure(max_retries=5, delay=2.0)
def send_message(client, message, user_id):
    return client.chat(message, user_id)

Кешування

# Отримання статистики кешу
cache_stats = client.get_cache_stats()
print(f"Розмір кешу: {cache_stats['cache_size']}")

# Очищення кешу
client.clear_cache()

Логування

import logging

# Налаштування логування
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("odam_sdk")

# Логування запитів та відповідей
client = ODAMClient(
    api_key="your_key",
    log_requests=True,
    log_responses=True
)

🏥 Медичні можливості

Медичні сутності

# Автоматичне витягування медичних сутностей
medical_text = """
Пацієнт: Іван Петренко, 45 років
Діагноз: Гіпертонія
Лікування: Еналаприл 10мг 1 раз на день
Алергії: Пеніцилін
"""

entities = client.extract_entities(
    text=medical_text,
    medical_mode=True
)

for entity in entities.entities:
    if entity.type in ["Person", "Medication", "Condition"]:
        print(f"Медична сутність: {entity.text} ({entity.type})")

Medical Safety

# Безпечна медична обробка
response = client.chat(
    message="У мене біль у грудях",
    user_id="patient_123",
    medical_safety=True,
    enterprise_v7=True
)

# Система автоматично додасть медичні попередження
print(response.response)

🌐 Багатомовність

Автоматичне визначення мови

# Автоматичне визначення мови
response = client.chat(
    message="Hello, how are you?",  # Англійська
    user_id="user_123"
)
print(f"Визначена мова: {response.language_info.language}")

response = client.chat(
    message="Привіт, як справи?",  # Українська
    user_id="user_123"
)
print(f"Визначена мова: {response.language_info.language}")

Явне вказання мови

from odam_sdk import Language

response = client.chat(
    message="Bonjour, comment allez-vous?",
    user_id="user_123",
    language=Language.FRENCH
)

🚀 Enterprise V7

Memory Enforcement

# Примусова персоналізація
response = client.chat(
    message="Нагадай мені про мої уподобання",
    user_id="user_123",
    memory_enforcement=True,
    enterprise_v7=True
)

print(f"Використання пам'яті: {response.v7_metrics.memory_utilization_score:.2%}")

Senior Fallback

# Примусова конвертація сутностей
response = client.chat(
    message="Я бачу лікаря",
    user_id="user_123",
    fallback_enabled=True,
    enterprise_v7=True
)

print(f"Використано fallback: {response.v7_metrics.fallback_used}")

📊 Моніторинг та метрики

Health Check

# Перевірка здоров'я системи
health = client.health_check()
print(f"Статус: {health.status}")
print(f"Версія: {health.version}")
print(f"Uptime: {health.uptime:.2f} секунд")

Метрики продуктивності

response = client.chat("Привіт!", "user_123")

print(f"Час обробки: {response.processing_time:.3f}с")
print(f"Персоналізація: {response.personalization_score:.2%}")
print(f"Результати пошуку: {response.search_results}")

🔒 Безпека

Валідація API ключа

from odam_sdk import validate_api_key

# Перевірка API ключа
if validate_api_key("your_api_key"):
    print("API ключ валідний")
else:
    print("API ключ невалідний")

Безпечне зберігання

import os

# Рекомендований спосіб зберігання API ключа
api_key = os.getenv("ODAM_API_KEY")
client = ODAMClient(api_key=api_key)

🧪 Тестування

Unit тести

import pytest
from unittest.mock import Mock
from odam_sdk import ODAMClient

def test_chat_response():
    # Мок відповіді
    mock_response = {
        "response": "Привіт! Як справи?",
        "user_id": "user_123",
        "processing_time": 0.1,
        "language_info": {"language": "uk", "confidence": 0.99},
        "entities": [],
        "memory_stats": {"memories_found": 0, "memories_created": 1},
        "search_results": {"vector_results": 0, "bm25_results": 0, "graph_results": 0},
        "personalization_score": 0.5,
        "timestamp": "2024-01-01T00:00:00Z"
    }
    
    # Тестування
    client = ODAMClient(api_key="test_key")
    client._make_request = Mock(return_value=mock_response)
    
    response = client.chat("Привіт!", "user_123")
    assert response.response == "Привіт! Як справи?"
    assert response.user_id == "user_123"

📖 Повна документація

🤝 Підтримка

📄 Ліцензія

Цей проект ліцензовано під MIT License - дивіться файл LICENSE для деталей.

🙏 Подяки

Дякуємо всім спільноті ODAM за внесок у розвиток цього SDK!


🧠 ODAM V4 - Майбутнє штучного інтелекту вже тут!

Metadata

Release files for odam-sdk 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for odam-sdk 2.0.0
File Size Uploaded
odam_sdk-2.0.0.tar.gz 33.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for odam-sdk 2.0.0
File Interpreter ABI Platform
odam_sdk-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 62.4 kB

Release files / odam_sdk-2.0.0.tar.gz

Download URL odam_sdk-2.0.0.tar.gz
Size 33.5 kB
Tags Source
SHA-256 checksum
How to use checksums
bd4a7cd1a6ed16ad681619c4f33adbc6039bf1463e6a86d31e82888a422180e7
BLAKE2b-256 checksum
How to use checksums
2c9df1892bf93bc05b58056792218714d88a803fd6621c421e2ebc488f663a7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / odam_sdk-2.0.0-py3-none-any.whl

Download URL odam_sdk-2.0.0-py3-none-any.whl
Size 28.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
59a2bc189c221b40bc4dde7b55ae93aa8f135ab6c588258e17ff076b38585326
BLAKE2b-256 checksum
How to use checksums
6c9e8454cf9a92a1428d46cb4ebaa50673da56f5d7b4f5176d7421aa9f22c639
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page