Запуск модели из Ollama с конфигурационным файлом JSON
Полноценный пример создания запроса из командной строки и полным набором параметров с подключением внешнего файла настроек JSON
Командная строка с передачей JSON файла
Создаем конфигурационный файл request_config.json
:
{
"model": "qwen3:4b",
"prompt": "Объясни концепцию искусственного интеллекта",
"stream": false,
"format": "markdown",
"options": {
"temperature": 0.7,
"top_p": 0.9,
"top_k": 40,
"num_predict": 300,
"stop": ["\n", "##"],
"repeat_penalty": 1.1,
"presence_penalty": 0.0,
"frequency_penalty": 0.0,
"seed": 424242,
"mirostat": 2,
"mirostat_tau": 5.0,
"mirostat_eta": 0.1,
"num_ctx": 2048,
"num_thread": 8
},
"template": "Ответь как эксперт по AI: {{ .Prompt }}\n\n"
}
Скрипт для обработки JSON конфига:
#!/bin/bash
process_ollama_config() {
local config_file="$1"
if [ ! -f "$config_file" ]; then
echo "Config file $config_file not found!"
return 1
fi
# Извлекаем параметры из JSON
local model=$(jq -r '.model' "$config_file")
local prompt=$(jq -r '.prompt' "$config_file")
local temperature=$(jq -r '.options.temperature' "$config_file")
local top_p=$(jq -r '.options.top_p' "$config_file")
local top_k=$(jq -r '.options.top_k' "$config_file")
local num_predict=$(jq -r '.options.num_predict' "$config_file")
local seed=$(jq -r '.options.seed' "$config_file")
local repeat_penalty=$(jq -r '.options.repeat_penalty' "$config_file")
# Строим команду ollama run
local command="ollama run '$model' --temperature $temperature --top-p $top_p --top-k $top_k --num-predict $num_predict --seed $seed --repeat-penalty $repeat_penalty"
# Добавляем stop слова если они есть
local stop_words=$(jq -r '.options.stop[]?' "$config_file" 2>/dev/null)
if [ -n "$stop_words" ]; then
while IFS= read -r word; do
command+=" --stop \"$word\""
done <<< "$stop_words"
fi
# Добавляем промпт
command+=" \"$prompt\""
echo "Выполняем команду: $command"
eval "$command"
}
# Использование
process_ollama_config "request_config.json"
Альтернативный вариант с прямым использованием curl:
#!/bin/bash
# Прямое использование JSON конфига с curl
curl -s http://localhost:11434/api/generate \
-H "Content-Type: application/json" \
-d "$(cat request_config.json)" \
| jq -r '.response'