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.1.tar.gz (15.8 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.1-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file openai_agent_core-0.1.1.tar.gz.

File metadata

  • Download URL: openai_agent_core-0.1.1.tar.gz
  • Upload date:
  • Size: 15.8 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.1.tar.gz
Algorithm Hash digest
SHA256 9a5c6a3443a8557c6500b8556bd766e81021a2f6e00f7db4368a0385b56b0061
MD5 3f71bd3e56ff54fcfc8d52a8c2475f27
BLAKE2b-256 5ebe8e4e8a0d1509c86269c0dd96b3b4ee8b3c506588a2f8d08204181f110d21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openai_agent_core-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cd60ca2972c0c01ba551ddbbfa60adcc80c9f3889472a184b9691f2b77884771
MD5 d0bf43f517bdfc4065aa00966e954d7d
BLAKE2b-256 01d204065b541f08b6c5122e51163d872ed36c37484e6c6a0068f921a7782d7a

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