Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openai_agent_core-0.1.2.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openai_agent_core-0.1.2-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

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

Hashes for openai_agent_core-0.1.2.tar.gz
Algorithm Hash digest
SHA256 b05cbdb24eb15a0d1e94eab2e3160ed346cd2cb7d7418f8b71eacb0023c5596d
MD5 da0b5b4f63325df367e0e4eb57f94561
BLAKE2b-256 246350610df824c05ee96aa54ea85f19e34a2bd1847091bf1048bc66c1008674

See more details on using hashes here.

File details

Details for the file openai_agent_core-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for openai_agent_core-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7f803ac5daa283d3fa6b66bf787aff9d745aa8ff98471507c99da321aa266a0b
MD5 2e68bd9b54c31a6b695ff8cb9b12f301
BLAKE2b-256 3e87226ea38a162a6ea1dbda024e3c507da67074081ea82af6d07fcb822960eb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page