Офіційний Python SDK для інтеграції з ODAM V4 - системою штучного інтелекту з людською пам'яттю
Project description
🧠 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 - Майбутнє штучного інтелекту вже тут!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file odam_sdk-2.0.0.tar.gz.
File metadata
- Download URL: odam_sdk-2.0.0.tar.gz
- Upload date:
- Size: 33.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd4a7cd1a6ed16ad681619c4f33adbc6039bf1463e6a86d31e82888a422180e7
|
|
| MD5 |
3ce3bd2e76e2c17ce9f4dcaa681be525
|
|
| BLAKE2b-256 |
2c9df1892bf93bc05b58056792218714d88a803fd6621c421e2ebc488f663a7e
|
File details
Details for the file odam_sdk-2.0.0-py3-none-any.whl.
File metadata
- Download URL: odam_sdk-2.0.0-py3-none-any.whl
- Upload date:
- Size: 28.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59a2bc189c221b40bc4dde7b55ae93aa8f135ab6c588258e17ff076b38585326
|
|
| MD5 |
f014dfb7a42eedb9f775deab06be8d3e
|
|
| BLAKE2b-256 |
6c9e8454cf9a92a1428d46cb4ebaa50673da56f5d7b4f5176d7421aa9f22c639
|