[[GPT]] Гайд для тех, кто не хочет делиться своими данными при общении с AI чатами или сэкономить 20 баксов на подписку, а тратить не больше 5 в крипте. То есть с LLM моделя можно работать как полностью локально (важна оперативка), либо через провайдера OpenRouter. Сначала немного теории. Что такое [[LLM]] модели https://www.youtube.com/watch?v=zjkBMFhNj_g
Для работа offline с [[LLM]] модели вам нужно следующее:
- Устанавливаем Ollama сервер. Это как Docker, только для моделей
- Скачиваем сервере с https://ollama.com/
- Выбираем модель https://ollama.com/library и скачиваем ее. Если у вас не более 16Gb RAM, то я рекомендую
wizardlm2:7b
. Это неплохая модель, немного хуже, чем chatGPT 3.5. - Команда следующая:
ollama run wizardlm2:7b-q5_K_M
. После скачивания запуститься промт, в котором можно проверить модель, ну либо сразу закрыть. На верхней панели должна появиться иконка с запущенной ламой.
OpenRouter — это провайдер LLM моделей. Подписка идет не ежемесячная, а pay as you go, то есть за отправленное и запрошенное количество букв.
- регистрируемся на https://openrouter.ai/
- оплачиваем криптой:
- оплату удобнее всего совершить через MetaMask
- но так как это всего лишь полухолодный кошелек, то в него надо положить деньги и сделать это можно через ByBit:
- покупаем USDT через P2P биржу
- выводим на MetaMask кошелек в сеть Polygon
- регистрируемся в OpenRouter
- создаем счет через Purchase, Use crypto
- Оплачиваем через MetaMask в сети Polygon на USDT
Если требуется работа только с одного устройства с локальным хранением истории, то скачиваем Chatbox — это electron-приложение, в котором можно указать провайдера моделей
- При первом запуске откроется окно настроек
- Model Provider:
Add Custom Provider
- Name: OpenRouter
- API KEY: получаем ключ здесь
- API Host:
https://openrouter.ai/api
- Model:
anthropic/claude-3.5-sonnet
(в это поле можно добавить несколько моделей)
- Model Provider:
Для интеграции взаимодействия в IDE (JetBrains, VSCode) существует такое расширение — Continue. Бывает два вида взаимодействия: code assistance и autocomplete.
- В режиме code assistance будет доступно окно чата, где можно задавать вопросы и указывать контексты. Контекстом может быть текущий открытый файл, все файлы, только измененные файлы и т.п. Модель должна подхватиться автоматически из Ollama.
- Режим autocomplete нужно включить руками.
- Для автокомплита рекомендуется использовать специально натренированную и более облегченную модель
starcoder2:3b
- Но можно и более продвинутую широкого кругозора
wizardlm2:7b-q5_K_M
- в настройках расширения в IDE нужно включить галочку Enabled autocomplete
- Открыть файл
~/.continue/config.json
и добавить секцию"models": [ { "title": "Wizardlm2 7B", "provider": "ollama", "model": "wizardlm2:7b-q5_K_M", "systemMessage": "You are an expert software developer. You give helpful and concise responses." } ], "tabAutocompleteModel": { "title": "Starcoder 3b", "provider": "ollama", "model": "starcoder2:3b" },
- Для автокомплита рекомендуется использовать специально натренированную и более облегченную модель
Это достаточно мощный вариант, который позволит заходить в чат не только с любого устройства, но и раздать доступ родственникам, так как здесь нет админской учетки и можно не переживать, что администратор будет читать твою переписку.
- склонировать репу
git clone https://github.com/danny-avila/LibreChat.git
- создать конфиги:
- `cp .env.example .env'
- `cp librechat.example.yaml librechat.yaml'
cp docker-compose.override.yml.example docker-compose.override.yml
- для поддержки локальных embeddings для возможности анализа загружаемых файлов документация, но она не совсем полная
- раскомментировать секции
services:
и полностью сrag_api:
- Зарегистрировать учетку в [Hugging Face](https://huggingface.co/](https://huggingface.co/)
- Создать Write Access Token https://huggingface.co/settings/tokens
- добавить в
.env
file
EMBEDDINGS_PROVIDER=huggingface HF_TOKEN=<TOKEN>
- Настроить креды как инструкции
- Прописать
OPENROUTER_KEY
в.env
- Рекомендую ограничить список моделей до тех, которыми ты обычно пользуешься
- name: 'OpenRouter'
apiKey: '${OPENROUTER_KEY}'
# apiKey: 'user_provided'
baseURL: 'https://openrouter.ai/api/v1'
models:
default: ['anthropic/claude-3.5-sonnet', 'google/gemini-pro-1.5', 'openai/gpt-4o', 'perplexity/llama-3-sonar-large-32k-online']
fetch: false
titleConvo: true
titleModel: 'meta-llama/llama-3-70b-instruct'
# Recommended: Drop the stop parameter from the request as Openrouter models use a variety of stop tokens.
dropParams: ['stop']
modelDisplayLabel: 'OpenRouter'
- запустить в Docker Compose:
docker compose -f deploy-compose.yml -f docker-compose.override.yml up -d
- Открыть в браузере адрес хоста на порту 80
- Чтобы на мобиле было удобно юзать, в мобильном Хроме создать ярлык на домашний экран, по сути это будет PWA-приложение.
OpenWeb UI - web application.
docker run -d -p 777:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
docker run -d -p 80:8080 -e OPENAI_API_KEY=<INSERT-KEY> -e OPENAI_API_BASE_URL=https://openrouter.ai/api/v1 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
Oterm — a text-based terminal client for Ollama.
brew tap ggozad/formulas && brew install ggozad/formulas/oterm
- Открываем в браузере http://localhost:777
- В Chrome рекомендую сделать Create Shortcut -> Open as window, чтобы можно было запускать типа как отдельное приложение из дока