🧠 ODAM V4 Python SDK
Офіційний 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"
📖 Повна документація
- 📚 API Reference
- 🚀 Quick Start Guide
- 🏥 Medical NLP Guide
- 🌐 Multilingual Support
- 🚀 Enterprise V7 Features
- 🔧 Configuration Guide
- 🧪 Testing Guide
- 📊 Analytics & Monitoring
🤝 Підтримка
- 📧 Email: support@odam.dev
- 💬 Discord: ODAM Community
- 📖 Documentation: docs.odam.dev
- 🐛 Issues: GitHub Issues
- 💡 Discussions: GitHub Discussions
📄 Ліцензія
Цей проект ліцензовано під 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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| odam_sdk-2.0.0.tar.gz | 33.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|
Security for odam-sdk 2.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.