File: /var/www/html/laravel/public/test-gpt.php
<?php
try {
$url = 'https://notam.foach.site/gpt.php';
$data = [
'input' => 'D0284/25 NOTAMN\nQ)UTSD/QFAAH/IV/NBO/A/000/999/3848N06546E005\nA)UTSK B)2503300000 C)2510252359\nE)AD OPR HR:\n MON 0000-0535 1405-1820 2105-2359\n TUE 0000-0510 2105-2359\n WED 0000-0400 1555-2359\n THU 0000-0400 2105-2359\n FRI 0000-0400\n SAT 0020-0400 2105-2359\n SUN 0000-0400 2105-2359.',
'key' => "sk-server-h8kYvYQrscNCYY2tCtWFT3BlbkFJJuDh3VanVvfRPNmUqfmV",
'prompt' => 'Разбей запрос на блоки: Блок A (аэропорт/место), Блок B (время начала действия), Блок C (время окончания действия), Блок D (время действия по дням), Блок E (информация об объектах), Блок F: (часто отсутствует, если нет ограничений по высоте или другим характеристикам), Блок G: (часто отсутствует, если нет ограничений по высоте или другим характеристикам)
Преобразуй каждый блок по отдельности в JSON соответствующего названия: A_Line, B_Line, C_Line, D_Line, E_Line, F_Line, G_Line
Не используй данные из блока Q в других блоках.
Верни JSON, который уже содержит некоторые заполненные поля и получите структурированный JSON
Не используй markdown. Пропускай: пустые блоки, пустые строки, пустые массивы
1. термины Alfa, Bravo, Charlie, Delta, Echo, Foxtrot, Golf, Hotel, India, Juliet, Kilo, Lima, Mike, November, Oscar, Papa, Quebec, Romeo, Sierra, Tango, Uniform, Victor, Whiskey, X-Ray, Yankee, Zulu заменяй на первую букву слова, делая её заглавной
2. В полях с координатами заменяй буквы в следующем соответствии: {"В":"E", "З":"W", "Ю":"S", "С":"N"}
3. примеры записи координат:
372447N1291131E {"Latitude": "372447N", "Longitude": "1291131E”}
372447С1291131В {"Latitude": "372447N", "Longitude": "1291131E”}
37.2447N 129.1131E {"Latitude": "372447N", "Longitude": "1291131E”}
37.2447С 129.1131В {"Latitude": "372447N", "Longitude": "1291131E”}
244255.84N 0513419.27E {"Latitude": "244255.84N", "Longitude": "0513419.27E”}
N244255.84 E0513419.27 {"Latitude": "244255.84N", "Longitude": "0513419.27E”}
С244255.84 В0513419.27 {"Latitude": "244255.84N", "Longitude": "0513419.27E”}
Ю244255.84 З0513419.27 {"Latitude": "244255.84S", "Longitude": "0513419.27W”}
S244255.84 W0513419.27 {"Latitude": "244255.84S", "Longitude": "0513419.27W”}
Ю 244255.84 З 0513419.27 {"Latitude": "244255.84S", "Longitude": "0513419.27W”}
244255.84 N 0513419.27 E {"Latitude": "244255.84N", "Longitude": "0513419.27E”}
244255.84N 0513419.27W {"Latitude": "244255.84N", "Longitude": "0513419.27W”}
244255.84S 0513419.27E {"Latitude": "244255.84S", "Longitude": "0513419.27E”}
162844.7N1034249.8E {"Latitude": "162844.7N", "Longitude": "1034249.8E”}
С60.57 В076.29 {"Latitude": "6057N", "Longitude": "07629E”}
С60 57.6 В076 29.1 {"Latitude": "605736N", "Longitude": "0762906E”}
С60 В076 {"Latitude": "60N", "Longitude": "076E”}
N60 E076 {"Latitude": "60N", "Longitude": "076E”}
60N 076E {"Latitude": "60N", "Longitude": "076E”}
60С 076В {"Latitude": "60N", "Longitude": "076E”}
60Ю 076З {"Latitude": "60S", "Longitude": "076W”}
60S 076W {"Latitude": "60S", "Longitude": "076W”}
S60 W076 {"Latitude": "60S", "Longitude": "076W”}
Ю60 З076 {"Latitude": "60S", "Longitude": "076W”}
4. Табличные данные могут быть представлены как
\r\nRWY TORA TODA ASDA LDA
\r\n01R 2721 2781(3.6) 2721 2721
\r\n19L 2781 2841(1.6) 2781 2671
или
RWY STOP WAY(M) CWY(M) STRIP(M) RESA(M) RMK
\n-------------------------------------------------------
\n18L 150X75 250X150 3780X280 90X90
\n-------------------------------------------------------
\n36R 150X75 330X150 3780X280 90X90
\n-------------------------------------------------------
\nSECONDARY\nRUNWAY
\n18R NIL 320X150 3274X280 90X90
\n-------------------------------------------------------
5. Текстовые поля кроме Other и Reference и Координат всегда переводи на английский',
'model' => 'ft:gpt-4o-mini-2024-07-18:foach::BFdLj6lC',
'temperature' => (float) 0,
'max_tokens' => (float) 4096,
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type:application/json']);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
$result = curl_exec($curl);
$error = curl_error($curl);
curl_close($curl);
if (!empty($error)) {
print_r($error);
}
echo $result;
} catch (Exception $e) {
print_r($e->getMessage());
}