Пример с curl и полным набором параметров

Полноценный пример запроса с curl и полным набором параметров с учетом контекста

#!/bin/bash

# Первый запрос - получаем контекст
echo "=== Первый запрос ==="
response1=$(curl -s http://localhost:11434/api/generate -d '{
  "model": "qwen3:4b",
  "prompt": "Расскажи о преимуществах языка Python",
  "stream": false,
  "format": "json",
  "options": {
    "temperature": 0.7,
    "top_p": 0.9,
    "top_k": 40,
    "num_predict": 256,
    "stop": ["\n", "###"],
    "repeat_penalty": 1.1,
    "presence_penalty": 0.0,
    "frequency_penalty": 0.0,
    "seed": 42,
    "mirostat": 2,
    "mirostat_tau": 5.0,
    "mirostat_eta": 0.1,
    "num_ctx": 2048,
    "num_thread": 8
  },
  "template": "Ответь как эксперт: {{ .Prompt }}\n\nОтвет:"
}')

# Извлекаем ответ и контекст
answer1=$(echo $response1 | jq -r '.response')
context=$(echo $response1 | jq '.context')
echo "Ответ: $answer1"
echo "Контекст получен"

# Второй запрос с контекстом
echo -e "\n=== Второй запрос с контекстом ==="
response2=$(curl -s http://localhost:11434/api/generate -d '{
  "model": "qwen3:4b",
  "prompt": "А какие у Python недостатки?",
  "context": '"$context"',
  "stream": false,
  "format": "text",
  "options": {
    "temperature": 0.5,
    "top_p": 0.8,
    "top_k": 30,
    "num_predict": 200,
    "stop": ["\n\n"],
    "repeat_penalty": 1.2,
    "seed": 123
  }
}')

answer2=$(echo $response2 | jq -r '.response')
echo "Ответ: $answer2"