papayu/docs/OPENAI_SETUP.md
Yuriy e76236dc55 Initial commit: papa-yu v2.4.4
- Schema version (x_schema_version, schema_hash) в prompt/trace
- Кеш read/search/logs/env (ContextCache) в plan-цикле
- Контекст-диета: MAX_FILES=8, MAX_FILE_CHARS=20k, MAX_TOTAL_CHARS=120k
- Plan→Apply двухфазность, NO_CHANGES, path sanitization
- Protected paths, content validation, EOL normalization
- Trace (PAPAYU_TRACE), redaction (PAPAYU_TRACE_RAW)
- Preview diff, undo/redo, transactional apply

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 11:33:19 +03:00

5.5 KiB
Raw Blame History

Подключение PAPA-YU к OpenAI

Инструкция по настройке кнопки «Предложить исправления» для работы через API OpenAI.


1. Получение API-ключа OpenAI

  1. Зайдите на platform.openai.com.
  2. Войдите в аккаунт или зарегистрируйтесь.
  3. Откройте API keys (раздел SettingsAPI keys или прямая ссылка).
  4. Нажмите Create new secret key, задайте имя (например, PAPA-YU) и скопируйте ключ.
  5. Сохраните ключ в надёжном месте — повторно его показать нельзя.

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

Перед запуском приложения задайте три переменные.

Обязательные

Переменная Значение Описание
PAPAYU_LLM_API_URL https://api.openai.com/v1/chat/completions URL эндпоинта Chat Completions OpenAI.
PAPAYU_LLM_API_KEY Ваш API-ключ OpenAI Ключ передаётся в заголовке Authorization: Bearer <ключ>.

Опциональные

Переменная Значение по умолчанию Описание
PAPAYU_LLM_MODEL gpt-4o-mini Модель для генерации плана (например, gpt-4o, gpt-4o-mini, gpt-4-turbo).
PAPAYU_LLM_MODE chat Режим агента: chat (инженер-коллега) или fixit (обязан вернуть патч + проверку). См. docs/AGENT_CONTRACT.md.

3. Запуск с OpenAI

Вариант A: В текущей сессии терминала (macOS / Linux)

cd /Users/yrippertgmail.com/Desktop/papa-yu

export PAPAYU_LLM_API_URL="https://api.openai.com/v1/chat/completions"
export PAPAYU_LLM_API_KEY="sk-ваш-ключ-openai"
export PAPAYU_LLM_MODEL="gpt-4o-mini"

npm run tauri dev

Подставьте вместо sk-ваш-ключ-openai свой ключ.

Вариант B: Одна строкой (без сохранения ключа в истории)

cd /Users/yrippertgmail.com/Desktop/papa-yu
PAPAYU_LLM_API_URL="https://api.openai.com/v1/chat/completions" \
PAPAYU_LLM_API_KEY="sk-ваш-ключ" \
PAPAYU_LLM_MODEL="gpt-4o-mini" \
npm run tauri dev

Вариант C: Файл .env в корне проекта (если приложение его подхватывает)

В PAPA-YU переменные читаются из окружения процесса. Tauri сам по себе не загружает .env. Чтобы использовать .env, можно запускать через env или скрипт:

# В papa-yu создайте файл .env (добавьте .env в .gitignore, чтобы не коммитить ключ):
# PAPAYU_LLM_API_URL=https://api.openai.com/v1/chat/completions
# PAPAYU_LLM_API_KEY=sk-ваш-ключ
# PAPAYU_LLM_MODEL=gpt-4o-mini

# Запуск с подгрузкой .env (macOS/Linux, если установлен dotenv-cli):
# npm install -g dotenv-cli
# dotenv -e .env -- npm run tauri dev

Или простой скрипт start-with-openai.sh:

#!/bin/bash
cd "$(dirname "$0")"
set -a
source .env   # или export переменные здесь
set +a
npm run tauri dev

4. Проверка

  1. Запустите приложение с заданными переменными.
  2. Выберите проект (папку или путь).
  3. Запустите Анализ.
  4. Введите цель (например: «Добавить README и .gitignore»).
  5. Нажмите «Предложить исправления».

Если всё настроено верно, план будет сформирован через OpenAI. В случае ошибки в интерфейсе или в логах будет указание на API (например, 401 — неверный ключ, 429 — лимиты).


5. Безопасность

  • Не коммитьте API-ключ в репозиторий и не вставляйте его в скрипты, которые попадают в историю.
  • Добавьте .env в .gitignore, если храните ключ в .env.
  • При утечке ключа отзовите его в OpenAI API keys и создайте новый.

6. Другие модели OpenAI

Можно указать другую модель через PAPAYU_LLM_MODEL, например:

  • gpt-4o — более способная модель.
  • gpt-4o-mini — быстрее и дешевле (по умолчанию в коде).
  • gpt-4-turbo — баланс качества и скорости.

Актуальный список и цены: OpenAI Pricing.


7. Если переменные не заданы

Если PAPAYU_LLM_API_URL не задана или пустая, кнопка «Предложить исправления» работает без API: используется встроенная эвристика (правила для README, .gitignore, LICENSE, .env.example и т.п.).