Запуск модели из Ollama с конфигурационным файлом JSON и контекстом
Полноценный пример создания запроса из командной строки и полным набором параметров с подключением внешнего файла настроек JSON с контекстом
Продвинутый пример с контекстом и многошаговым диалогом
Создаем скрипт advanced_dialog.sh
:
#!/bin/bash
CONFIG_FILE="dialog_config.json"
CONTEXT_FILE="context.json"
# Функция для отправки запроса
send_request() {
local prompt="$1"
local context="${2:-null}"
local request_data=$(jq --arg prompt "$prompt" --argjson context "$context" '
{
model: .model,
prompt: $prompt,
stream: false,
format: .format,
options: .options,
template: .template,
context: $context
}' "$CONFIG_FILE")
curl -s http://localhost:11434/api/generate \
-H "Content-Type: application/json" \
-d "$request_data"
}
# Основной диалог
echo "🤖 Начинаем диалог с AI"
# Шаг 1
echo "👤: Расскажи о Python"
response1=$(send_request "Расскажи о Python")
answer1=$(echo $response1 | jq -r '.response')
context=$(echo $response1 | jq '.context')
echo "🤖: $answer1"
# Сохраняем контекст
echo "$context" > "$CONTEXT_FILE"
# Шаг 2 с контекстом
echo -e "\n👤: А какие у него недостатки?"
response2=$(send_request "А какие у него недостатки?" "$(cat $CONTEXT_FILE)")
answer2=$(echo $response2 | jq -r '.response')
echo "🤖: $answer2"
# Обновляем контекст
echo "$(echo $response2 | jq '.context')" > "$CONTEXT_FILE"
# Шаг 3
echo -e "\n👤: Что посоветуешь для изучения?"
response3=$(send_request "Что посоветуешь для изучения?" "$(cat $CONTEXT_FILE)")
answer3=$(echo $response3 | jq -r '.response')
echo "🤖: $answer3"
Конфигурационный файл dialog_config.json
:
{
"model": "qwen3:4b",
"format": "text",
"template": "Ответь дружелюбно и подробно: {{ .Prompt }}\n\n",
"options": {
"temperature": 0.7,
"top_p": 0.9,
"top_k": 40,
"num_predict": 200,
"stop": ["\n\n", "###"],
"repeat_penalty": 1.1,
"seed": 12345,
"mirostat": 1,
"mirostat_tau": 5.0,
"mirostat_eta": 0.1
}
}
Запуск:
chmod +x advanced_dialog.sh
./advanced_dialog.sh