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

153 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Prisma Platform MVP
Минимальный чат-агент на Agno + Ollama с рантаймом AgentOS.
В этом проекте AgentOS работает как HTTP API сервер (FastAPI + Uvicorn).
## Требования
- Python 3.10+
- Запущенный Ollama endpoint (по умолчанию: `http://localhost:11435`)
- Доступная модель в Ollama (по умолчанию: `gemma4:31b`)
## Текущая структура
```text
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
```
## Установка
```bash
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
```
## Запуск
Интерактивный режим чата:
```bash
python -m src.main
```
Режим одного сообщения:
```bash
python -m src.main --message "Привет, что ты умеешь?"
```
Режим запуска сценария (идет загрузка сценария из `scenarios/index.json`):
```bash
python -m src.main --scenario-id news_source_discovery_v1 --workflow-input-json '{"url":"https://example.com/news"}'
```
## Запуск AgentOS
Запуск сервера AgentOS:
```bash
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):
```json
{
"scenario_id": "news_source_discovery_v1",
"input": {
"url": "https://example.com/news"
}
}
```
Пример запроса:
```bash
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`.
Проверка, что сервер поднят:
```bash
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. Установите зависимости:
```bash
pip install -r requirements.txt
```
2. Поднимите Phoenix (см. `docker-service/docker-compose.yml`) и включите трассировку в `.env`:
```dotenv
PHOENIX_TRACING_ENABLED=true
PHOENIX_COLLECTOR_ENDPOINT=http://localhost:6006
PHOENIX_PROJECT_NAME=prisma-platform
```
3. Запустите приложение как обычно (`python -m src.main` или `python -m src.agent_os`).