59 lines
2.0 KiB
Bash
Executable File
59 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Скрипт для тестирования OpenAI API ключа
|
|
|
|
echo "🔍 Тестирование OpenAI API ключа..."
|
|
|
|
# Проверяем, установлена ли переменная окружения
|
|
if [ -z "$OPENAI_API_KEY" ]; then
|
|
echo "❌ Переменная окружения OPENAI_API_KEY не установлена"
|
|
echo "Установите её командой: export OPENAI_API_KEY=sk-your-api-key-here"
|
|
exit 1
|
|
fi
|
|
|
|
# Проверяем формат ключа
|
|
if [[ ! $OPENAI_API_KEY =~ ^sk- ]]; then
|
|
echo "❌ API ключ должен начинаться с 'sk-'"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✅ API ключ найден: ${OPENAI_API_KEY:0:10}..."
|
|
|
|
# Тестируем API
|
|
echo "🚀 Отправка тестового запроса к OpenAI API..."
|
|
|
|
response=$(curl -s -w "\n%{http_code}" -X POST "https://api.openai.com/v1/chat/completions" \
|
|
-H "Authorization: Bearer $OPENAI_API_KEY" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{
|
|
"model": "gpt-4o-mini",
|
|
"messages": [
|
|
{
|
|
"role": "user",
|
|
"content": "Привет! Это тест API ключа. Ответь коротко."
|
|
}
|
|
],
|
|
"max_tokens": 50
|
|
}')
|
|
|
|
# Извлекаем HTTP код и тело ответа
|
|
http_code=$(echo "$response" | tail -n1)
|
|
response_body=$(echo "$response" | head -n -1)
|
|
|
|
echo "📊 HTTP код: $http_code"
|
|
|
|
if [ "$http_code" = "200" ]; then
|
|
echo "✅ API ключ работает корректно!"
|
|
echo "📝 Ответ от OpenAI:"
|
|
echo "$response_body" | jq -r '.choices[0].message.content' 2>/dev/null || echo "$response_body"
|
|
elif [ "$http_code" = "401" ]; then
|
|
echo "❌ Ошибка 401: API ключ недействителен или истек"
|
|
echo "📝 Ответ: $response_body"
|
|
elif [ "$http_code" = "429" ]; then
|
|
echo "⚠️ Ошибка 429: Превышен лимит запросов"
|
|
echo "📝 Ответ: $response_body"
|
|
else
|
|
echo "❌ Ошибка $http_code"
|
|
echo "📝 Ответ: $response_body"
|
|
fi
|