GPT agent logic with tool calling and dispatching
Project description
ai-agent ai-agent — библиотека для создания асинхронных GPT-агентов с поддержкой Tool Calling, Tool Dispatching, управлением файлами, автоматическим предсказанием Tool Calls на базе ML, легко интегрируется с LangChain и FastAPI.
Установка bash Копировать Редактировать pip install ai-agent или локально из исходников:
bash Копировать Редактировать pip install -e . Основные компоненты 1️⃣ GptAgent python Копировать Редактировать from ai_agent import GptAgent
agent = GptAgent( openai_key="sk-...", instructions="Ты помощник.", name="MyAgent", model="gpt-4o" ) Методы: await create() Создание Assistant и Thread в OpenAI API.
await update_agent(new_assistant_name, new_assistant_instructions, new_assistant_model) Обновление параметров агента.
await update_memory() Создание нового Thread (обновление памяти).
await send_text_message(text: str) Отправка текстового сообщения.
await send_image_message(text: str, file_path: list[str]) Отправка изображения с текстом.
await message(text: str, file_path: Optional[list[str]]) Универсальный метод для отправки текста или изображения.
await get_image_description(image_path: str) Генерация описания изображения.
Пример: python Копировать Редактировать await agent.create() await agent.message("Привет, что ты умеешь?") 2️⃣ StorageManager python Копировать Редактировать from ai_agent.tools import StorageManager
storage = StorageManager()
await storage.start_cleanup() Методы: await save_file(user_id, assistant_id, file_name, content, expiry_hours, schema=None) Сохранение файла.
await delete_files(user_id, assistant_id, file_names) Удаление указанных файлов.
await list_files(user_id, assistant_id) Список файлов.
await delete_assistant_folder(user_id, assistant_id) Удаление папки ассистента.
await get_file_path(user_id, assistant_id, file_name) Получение пути к файлу.
await get_files_by_extension(user_id, assistant_id, extension) Получение файлов по расширению.
Пример: python Копировать Редактировать await storage.save_file("user1", "agent1", "test.txt", "Hello", 1) files = await storage.list_files("user1", "agent1") 3️⃣ ToolCallPredictor python Копировать Редактировать from ai_agent.tools import ToolCallPredictor
predictor = ToolCallPredictor() Методы: await train(data) Обучение модели.
await load_model() Загрузка модели.
await predict_tools(text) Предсказание инструментов для текста.
await predict_tools_batch(texts) Пакетное предсказание.
await generate_tool_calls(text) Генерация Tool Calls для текста.
await generate_tool_calls_batch(texts) Пакетная генерация Tool Calls.
await prepare_user_message(text) Генерация сообщения для Assistant API.
await prepare_user_messages_batch(texts) Пакетная генерация сообщений.
Пример: python Копировать Редактировать data = [ {"text": "translate", "tools": ["translator"]}, {"text": "analyze image", "tools": ["analyzer"]} ]
await predictor.train(data) await predictor.load_model() tools = await predictor.predict_tools("translate") 4️⃣ ToolManager python Копировать Редактировать from ai_agent.tools import ToolManager, ToolCallPredictor, StorageManager, ToolsCollector
manager = ToolManager( assistant_id="aid", user_id="uid", predictor=ToolCallPredictor(), storage=StorageManager(), collector=ToolsCollector() ) Методы: await generate_tool_calls(text) Генерация Tool Calls.
await generate_user_message(text) Генерация пользовательского сообщения.
await handle_tool_calls(tool_calls) Обработка Tool Calls.
get_generated_files() Получение списка сгенерированных файлов.
5️⃣ ToolDispatcher python Копировать Редактировать from ai_agent.tools import ToolDispatcher Методы: await dispatch(tool_calls) Обработка Tool Calls.
get_file_names() Получение имён файлов.
6️⃣ ToolsCollector python Копировать Редактировать from ai_agent.tools import ToolsCollector
collector = ToolsCollector() Методы: @collector.tool(schema) Декоратор для регистрации инструмента.
await get_tools() Получение схем инструментов.
await get_function(name) Получение функции по имени.
await get_all() Получение всех зарегистрированных функций.
await call_tool(name, arguments) Вызов инструмента с аргументами.
Пример: python Копировать Редактировать @collector.tool({ "function": { "name": "multiply", "parameters": { "type": "object", "properties": { "x": {"type": "integer"} }, "required": ["x"] } } }) def multiply(x): return {"result": x * 2}
tools = await collector.get_tools() result = await collector.call_tool("multiply", {"x": 5}) Лицензия MIT License.
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 openai_agent_core-0.1.2.tar.gz.
File metadata
- Download URL: openai_agent_core-0.1.2.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.0rc2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b05cbdb24eb15a0d1e94eab2e3160ed346cd2cb7d7418f8b71eacb0023c5596d
|
|
| MD5 |
da0b5b4f63325df367e0e4eb57f94561
|
|
| BLAKE2b-256 |
246350610df824c05ee96aa54ea85f19e34a2bd1847091bf1048bc66c1008674
|
File details
Details for the file openai_agent_core-0.1.2-py3-none-any.whl.
File metadata
- Download URL: openai_agent_core-0.1.2-py3-none-any.whl
- Upload date:
- Size: 16.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.0rc2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f803ac5daa283d3fa6b66bf787aff9d745aa8ff98471507c99da321aa266a0b
|
|
| MD5 |
2e68bd9b54c31a6b695ff8cb9b12f301
|
|
| BLAKE2b-256 |
3e87226ea38a162a6ea1dbda024e3c507da67074081ea82af6d07fcb822960eb
|