PydanticAI: создание генеративных приложений ИИ с помощью Pydantic упрощает создание приложений ИИ производственного уровня
Общее введение
PydanticAI - это основанный на Pydantic агентный фреймворк Python, предназначенный для упрощения разработки приложений генеративного ИИ. Разработанный командой Pydantic, он поддерживает широкий спектр моделей (например, OpenAI, Gemini, Groq и т. д.) и обеспечивает безопасный с точки зрения типов поток управления и комбинации агентов. PydanticAI обеспечивает эффективность и надежность приложений генеративного ИИ благодаря структурированной проверке ответов и потоковым ответам. Его уникальная система инъекции зависимостей облегчает тестирование и итеративную разработку, а также интегрирует Logfire для отладки и мониторинга производительности приложения.PydanticAI в настоящее время находится в ранней бета-версии и API может быть изменен, отзывы пользователей приветствуются.
Список функций
- Поддержка нескольких моделейСовместим с OpenAI, Gemini, Groq и многими другими генеративными моделями ИИ.
- безопасность типа: Проверка структурированных ответов с помощью Pydantic для обеспечения безопасности типов данных.
- Система инъекции зависимостей: Обеспечивает безопасную для типов инъекцию зависимостей для упрощения тестирования и итеративной разработки.
- потоковый ответ: Поддержка потокового отклика и проверки для повышения скорости отклика и надежности приложений.
- Интеграция с Logfire: для отладки и мониторинга производительности и поведения приложений генеративного ИИ.
- простой интерфейс: Обеспечивают чистые интерфейсы для легкого расширения и интеграции с другими моделями.
Использование помощи
Процесс установки
- Установка PydanticAI: Убедитесь, что версия Python 3.9 и выше, и установите PydanticAI с помощью следующей команды:
pip install pydantic-ai
- Установка зависимостей: PydanticAI зависит от ряда основных библиотек и LLM API, и эти зависимости обрабатываются автоматически во время установки.
Руководство по использованию
Создание простого прокси-сервера
- Определение агентов: Создайте простой агент и укажите используемую модель.
from pydantic_ai import Agent
agent = Agent(
'gemini-1.5-flash',
system_prompt='Be concise, reply with one sentence.',
)
- Бегущие агенты: Одновременный запуск агентов для простого диалога.
result = agent.run_sync('Where does "hello world" come from?')
print(result.data)
Пример сложного прокси-сервера
- Определите модели зависимости и результатов: Используйте Pydantic для определения моделей зависимостей и результатов.
from dataclasses import dataclass
from pydantic import BaseModel, Field
from pydantic_ai import Agent, RunContext
from bank_database import DatabaseConn
@dataclass
class SupportDependencies:
customer_id: int
db: DatabaseConn
class SupportResult(BaseModel):
support_advice: str = Field(description='Advice returned to the customer')
block_card: bool = Field(description="Whether to block the customer's card")
risk: int = Field(description='Risk level of query', ge=0, le=10)
- Создание агентов поддержки: Определите системные подсказки и функции полезности.
support_agent = Agent(
'openai:gpt-4o',
deps_type=SupportDependencies,
result_type=SupportResult,
system_prompt=(
'You are a support agent in our bank, give the '
'customer support and judge the risk level of their query.'
),
)
@support_agent.system_prompt
async def add_customer_name(ctx: RunContext[SupportDependencies]) -> str:
customer_name = await ctx.deps.db.customer_name(id=ctx.deps.customer_id)
return f"The customer's name is {customer_name!r}"
@support_agent.tool
async def customer_balance(ctx: RunContext[SupportDependencies], include_pending: bool) -> float:
"""Returns the customer's current account balance."""
return await ctx.deps.db.customer_balance(id=ctx.deps.customer_id, include_pending=include_pending)
- Запуск агента поддержки: Запустите агент с определенными зависимостями.
async def main():
deps = SupportDependencies(customer_id=123, db=DatabaseConn())
result = await support_agent.run('What is my balance?', deps=deps)
print(result.data)
# 输出示例:support_advice='Hello John, your current account balance, including pending transactions, is $123.45.' block_card=False risk=1
result = await support_agent.run('I just lost my card!', deps=deps)
print(result.data)
# 输出示例:support_advice="I'm sorry to hear that, John. Your card has been blocked for security reasons." block_card=True risk=7
Отладка и мониторинг
В PydanticAI интегрирован Logfire для отладки и мониторинга производительности и поведения приложений генеративного ИИ. С помощью Logfire вы можете просматривать работу агента в режиме реального времени, анализировать данные о реакции и оптимизировать производительность приложения.
Обратная связь и совершенствование
В настоящее время PydanticAI находится в стадии ранней бета-версии, и API может быть изменен. Пользователи могут оставлять отзывы через GitHub, если у них возникнут какие-либо проблемы или предложения по улучшению в процессе использования.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...