Files

3.5 KiB

1C Agent (отдельный подпроект)

Быстрый запуск на test-docker

# 1) Подготовить переменные (без секретов)
cd Z:\codex\LLM
Copy-Item core\deploy\docker\1c-agent\1c-agent.env.example .\core\deploy\docker\1c-agent\\.env

Редактируйте .env:

  • ONEC_ADAPTER_URL → URL REST-адаптера;
  • ONEC_ADAPTER_TOKEN → токен (если настроен).
  • при необходимости ONEC_AGENT_PROVIDERS (JSON).
$env:DOCKER_HOST = "ssh://test-docker"
docker compose -f core\deploy\docker\1c-agent\compose.yaml --env-file core\deploy\docker\1c-agent\.env up -d --build

Проверка:

docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}"
curl http://docker-test.cin.su:8090/v1/health

Если внешний хост не отвечает из вашей сети, проверьте локально в контейнере:

$env:DOCKER_HOST = "ssh://test-docker"
docker exec onec-agent python -c "import urllib.request, json; print(json.loads(urllib.request.urlopen('http://127.0.0.1:8090/v1/health', timeout=5).read().decode()))"

Основные потоки

  • project — единица бизнеса/сценария: имя, описание, политики, базовая настройка.
  • chat — конкретная сессия: выбранная модель, провайдер, параметры генерации, локальные параметры RAG.
  • message — отдельные сообщения внутри чата, используемые для контекста.

Что лучше держать где

  • Project-level:
    • название/описание;
    • долгоживущие политики доступа/ограничения;
    • общие настройки безопасности и базовые параметры.
  • Chat-level:
    • выбранный провайдер/модель;
    • rag_profile, rag_limit;
    • temperature, max_tokens;
    • системный prompt конкретной сессии.

Взаимодействие с разными ИИ-провайдерами

Сервис уже умеет работать через ONEC_AGENT_PROVIDERS как через карту:

{
  "default": {
    "type": "openai-compatible",
    "base_url": "http://docker-gpu.cin.su:8000",
    "model": "qwen3-4b-instruct-2507"
  }
}

Если нужно подключить другой ИИ протокол, добавляем новый type в plugins/1c/agent/agent_server.py в диспетчер call_model(...).

Проверка turn

curl -X POST "http://docker-test.cin.su:8090/v1/projects" `
  -H "Content-Type: application/json" `
  -d '{ "name":"demo-1c", "description":"Проверка пайплайна" }'

curl -X POST "http://docker-test.cin.su:8090/v1/projects/<project_id>/chats" `
  -H "Content-Type: application/json" `
  -d '{ "title":"Проверка" }'

curl -X POST "http://docker-test.cin.su:8090/v1/projects/<project_id>/chats/<chat_id>/turn" `
  -H "Content-Type: application/json" `
  -d '{ "message":"Какие реквизиты есть у справочника Номенклатура?", "use_rag": true }'

Статус/поддержка

  • Проверить, что сервис запущен: GET /v1/health.
  • Проверить модели/провайдеры: GET /v1/models, GET /v1/providers.