AI agent wrapper for AvalAI API with retry and model fallback support
Project description
🎃 To change the language to English click here.
AvalAgent 1.0.4
یک کلاینت پایتون برای تعامل با مدلهای هوش مصنوعی از طریق API سازگار با OpenAI شرکت AvalAI، با ویژگیهایی مانند تلاشهای مجدد خودکار، پشتیبانی از مدلهای جایگزین، حافظهٔ مکالمه، بهبود پرسشها و مدیریت خطاهای قوی.
ویژگیها
- 🚀 پشتیبانی از چندین مدل: قابل استفاده با GPT-4o، DeepSeek، Claude-3 و سایر مدلهای پشتیبانیشده توسط AvalAI
- 🔄 تلاشهای مجدد خودکار و پشتیبانی از مدلهای جایگزین: در صورت عدم موفقیت مدل اصلی، به مدلهای ثانویه مراجعه میکند
- 🧠 حافظهٔ مکالمه: حفظ زمینهٔ گفتگو در تعاملات (قابل تنظیم)
- 💾 ذخیرهسازی حافظه: امکان ذخیره و بارگذاری تاریخچهٔ مکالمات در دیسک
- 🛠️ بهبود پرسشها: تبدیل پرسشهای خام به پرسشهای ساختاریافته و بهینه
- 🔒 مدیریت ایمن کلید API: استفاده از
SecretStrبرای حفاظت از کلید API - 📝 ثبت گزارش داخلی: ثبت گزارشهای دقیق برای اشکالزدایی و نظارت بر درخواستهای API
- ⚡ یکپارچهسازی با LangChain: سازگار با فرمتهای پیام LangChain
- 📊 نظارت بر اعتبار مصرفی: بررسی میزان استفاده و اعتبار باقیمانده از API
نصب
pip install avalAgent
استفادهٔ پایه
from avalAgent.agent import AvalAgent
from pydantic import SecretStr
# مقداردهی اولیه با کلید API
agent = AvalAgent(api_key=SecretStr("your-api-key-here"))
# دریافت پاسخ
response = agent.get_response(
system_prompt="شما یک دستیار مفید هستید.",
query="محاسبات کوانتومی را به زبان ساده توضیح بده"
)
print(response)
مثالها
مثال ۱: استفاده با تنظیمات پیشفرض
from avalAgent.agent import AvalAgent
from pydantic import SecretStr
agent = AvalAgent(api_key=SecretStr("your-api-key-here"))
response = agent.get_response(
system_prompt="شما یک دستیار مفید هستید.",
query="نظریهٔ نسبیت را توضیح بده"
)
print(response)
مثال ۲: سفارشیسازی لیست اولویت مدلها و تعداد تلاشها
from avalAgent.agent import AvalAgent
from pydantic import SecretStr
agent = AvalAgent(
api_key=SecretStr("your-api-key-here"),
model_priority_list=[
"gpt-4o",
"deepseek-chat",
"anthropic.claude-3-5-sonnet-20241022-v2:0"
],
stop_after_attempt=5
)
response = agent.get_response(
system_prompt="شما یک کارشناس فنی هستید.",
query="بلاکچین چگونه کار میکند؟",
model="gpt-4o",
temperature=0.2
)
print(response)
مثال ۳: استفاده از حافظهٔ مکالمه
from avalAgent.agent import AvalAgent
from pydantic import SecretStr
# مقداردهی اولیه با حافظه فعال
agent = AvalAgent(
api_key=SecretStr("your-api-key-here"),
use_memory=True,
max_memory_size=5
)
# پرسش اول برای ایجاد زمینه
response1 = agent.get_response(
system_prompt="شما یک دستیار سفر هستید.",
query="جاذبههای گردشگری پاریس را معرفی کن"
)
# پرسش دوم با بهرهگیری از حافظه
response2 = agent.get_response(
query="کدامیک برای کودکان مناسب هستند؟"
)
print(response2)
مثال ۴: حافظهٔ پایدار بین جلسات
from avalAgent.agent import AvalAgent
from pydantic import SecretStr
# جلسهٔ اول - ذخیرهٔ حافظه
agent1 = AvalAgent(
api_key=SecretStr("your-api-key-here"),
use_memory=True,
persist_memory=True,
memory_file="travel_chat.json"
)
response = agent1.get_response(
system_prompt="شما یک دستیار سفر هستید.",
query="بهترین موزههای لندن کداماند؟"
)
# جلسهٔ دوم - بارگذاری حافظهٔ قبلی
agent2 = AvalAgent(
api_key=SecretStr("your-api-key-here"),
use_memory=True,
persist_memory=True,
memory_file="travel_chat.json"
)
# ادامهٔ گفتگو
response = agent2.get_response(
query="کدامیک ورودی رایگان دارند؟"
)
print(response)
مثال ۵: بهبود پرسش برای پست اینستاگرام
from avalAgent.agent import AvalAgent
from pydantic import SecretStr
agent = AvalAgent(api_key=SecretStr("your-api-key-here"))
raw_prompt = """
من به یک کپشن فارسی برای اینستاگرام نیاز دارم برای مجموعهٔ جدید کیفهای لوکس ما.
کپشن باید:
- شامل ۲ تا ۳ پاراگراف کوتاه باشد
- از ایموجیها بهصورت مناسب استفاده کند
- بر روی هنر ساخت تأکید کند
- شامل یک فراخوان برای اقدام باشد
- لحن دوستانه اما شیک داشته باشد
"""
enhanced_prompt = agent.enhance_prompt(raw_prompt)
print(enhanced_prompt)
# سپس استفاده از پرسش بهبود یافته
response = agent.get_response(
system_prompt=enhanced_prompt,
query="۳ گزینهٔ کپشن تولید کن"
)
print(response)
مثال ۶: نظارت بر اطلاعات اعتبار
from avalAgent.agent import AvalAgent
from pydantic import SecretStr
agent = AvalAgent(api_key=SecretStr("your-api-key-here"))
# گزینه ۱: فقط دریافت داده
credit_data = agent.get_credit_info()
# گزینه ۲: ثبت جدول فرمتشده
agent.log_credit_info_table()
بهروزرسانی: نسخهٔ 1.0.4
ویژگیهای جدید
- بهبود پرسش: متد جدید
enhance_prompt()برای تبدیل پرسشهای خام به فرمتهای ساختاریافته - بهبود مدیریت خطا: اعتبارسنجی قویتر و پیامهای خطای دقیقتر
- پیکربندی JSON: پشتیبانی از پیکربندی مبتنی بر JSON در بهبود پرسش([Sider][1])
بهبودها
-
تغییرات API:
get_response()اکنون از پارامترهای**configبهجای آرگومانهای جداگانه استفاده میکند- اعتبارسنجی پارامترها بهصورت یکنواخت در تمام متدها
-
مدیریت حافظه:
- بهبود در مدیریت موارد خاص در ذخیرهسازی حافظه
تغییرات
-
تغییرات رفتاری:
get_response()اکنون بهجای ایجاد خطا برای پرسشهای خالی،Noneبرمیگرداند- اعتبارسنجی سختگیرانهتر در
create_structured_prompt()
-
مستندسازی:
- افزودن راهنمای فارسی
- مستندسازی دقیقتر پارامترها
پشتیبانی از مدلها
مدلهای سازگار با OpenAI که از طریق API AvalAI در دسترس هستند.
مدیریت خطا
این عامل بهصورت خودکار:
- تلاشهای ناموفق را تا ۳ بار تکرار میکند (بهصورت پیشفرض)
- در صورت عدم موفقیت مدل اصلی، به مدلهای جایگزین مراجعه میکند
- با محدودیتهای نرخ و خطاهای شبکه بهصورت مؤثر برخورد میکند
- گزارشهای دقیق برای اشکالزدایی فراهم میکند
🐞 مشکلات و پشتیبانی
اگر باگ یا درخواست ویژگی دارید، لطفاً یک issue در اینجا باز کنید.
LICENSE
مجوز MIT - برای جزئیات بیشتر به فایل LICENSE مراجعه کنید.
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
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 avalagent-1.0.4.tar.gz.
File metadata
- Download URL: avalagent-1.0.4.tar.gz
- Upload date:
- Size: 13.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0fc75f3feaae32848f3410334bd364b60935de8233c17c82a9b7c64d95439ecb
|
|
| MD5 |
5b832323c424bd15732059b70e5421f5
|
|
| BLAKE2b-256 |
bd79901c184f59123d10c1ad8f966b9d12d9d3b9d1d74d2b2843181c73dfd40c
|
File details
Details for the file avalagent-1.0.4-py3-none-any.whl.
File metadata
- Download URL: avalagent-1.0.4-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f389395aa8e26265f67ce4687440a9d4e2f401807406ba491eea8cd5d0a164c
|
|
| MD5 |
bf0b030af9609e33732d4d955abb27f1
|
|
| BLAKE2b-256 |
0243916864356be2b2ab73ae4296446a33bbed6b566671bdec9b9da265f95a78
|