Files
prisma/README.md
T
Barabashka 0fbd7dce1a Добавить FastAPI endpoint запуска сценария через AgentOS base_app.
Подключен верхний HTTP-слой с POST /api/runs и обновлены схемы/README, чтобы запуск сценариев шел через единый API-контракт поверх Agno workflow.
2026-04-21 17:38:03 +03:00

4.1 KiB
Raw Blame History

Prisma Platform MVP

Минимальный чат-агент на Agno + Ollama с рантаймом AgentOS.

В этом проекте AgentOS работает как HTTP API сервер (FastAPI + Uvicorn).

Требования

  • Python 3.10+
  • Запущенный Ollama endpoint (по умолчанию: http://localhost:11435)
  • Доступная модель в Ollama (по умолчанию: gemma4:31b)

Текущая структура

prisma_platform/
├── .env
├── .env.example
├── requirements.txt
├── scenarios/
│   ├── index.json
│   └── news_source_discovery/
│       └── v1.json
└── src/
    ├── __init__.py
    ├── api_routes.py
    ├── agent_os.py
    ├── agent_runner.py
    ├── main.py
    ├── observability.py
    ├── scenario_store.py
    ├── schemas.py
    ├── stub_tools.py
    └── workflow_runner.py

Установка

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env

Запуск

Интерактивный режим чата:

python -m src.main

Режим одного сообщения:

python -m src.main --message "Привет, что ты умеешь?"

Режим запуска сценария (идет загрузка сценария из scenarios/index.json):

python -m src.main --scenario-id news_source_discovery_v1 --workflow-input-json '{"url":"https://example.com/news"}'

Запуск AgentOS

Запуск сервера AgentOS:

python -m src.agent_os

По умолчанию AgentOS работает на http://127.0.0.1:7777.

Документация API доступна по адресам:

  • http://127.0.0.1:7777/docs
  • http://127.0.0.1:7777/redoc

Верхний слой сервиса реализован как кастомные FastAPI роуты (src/api_routes.py), подключенные через AgentOS(base_app=...).

Запуск сценария через HTTP

  • POST http://127.0.0.1:7777/api/runs
  • Тело запроса (JSON):
{
  "scenario_id": "news_source_discovery_v1",
  "input": {
    "url": "https://example.com/news"
  }
}

Пример запроса:

curl -X POST "http://127.0.0.1:7777/api/runs" \
  -H "Content-Type: application/json" \
  -d '{
    "scenario_id": "news_source_discovery_v1",
    "input": {
      "url": "https://example.com/news"
    }
  }'

Endpoint возвращает структурированный ответ со статусом success или failed.

Проверка, что сервер поднят:

curl -s "http://127.0.0.1:7777/docs" | grep -n "Swagger UI"

Переменные окружения

Основные переменные:

  • AGENT_ID (по умолчанию: prisma-agent)
  • OLLAMA_MODEL_ID (по умолчанию: gemma4:31b)
  • OLLAMA_HOST (по умолчанию: http://localhost:11435)
  • OLLAMA_TEMPERATURE (по умолчанию: 0)
  • AGENT_MARKDOWN (по умолчанию: false)
  • AGENT_DEBUG_MODE (по умолчанию: true)
  • AGENT_INSTRUCTIONS (по умолчанию: You are a helpful assistant. Answer briefly and clearly.)
  • AGENT_OS_HOST (по умолчанию: 127.0.0.1)
  • AGENT_OS_PORT (по умолчанию: 7777)
  • PHOENIX_TRACING_ENABLED (по умолчанию: false)
  • PHOENIX_COLLECTOR_ENDPOINT (по умолчанию: http://localhost:6006)
  • PHOENIX_PROJECT_NAME (по умолчанию: prisma-platform)

Phoenix трассировка (локально)

  1. Установите зависимости:
pip install -r requirements.txt
  1. Поднимите Phoenix (см. docker-service/docker-compose.yml) и включите трассировку в .env:
PHOENIX_TRACING_ENABLED=true
PHOENIX_COLLECTOR_ENDPOINT=http://localhost:6006
PHOENIX_PROJECT_NAME=prisma-platform
  1. Запустите приложение как обычно (python -m src.main или python -m src.agent_os).