parser.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. return [
  3. /*
  4. |--------------------------------------------------------------------------
  5. | Активные порталы
  6. |--------------------------------------------------------------------------
  7. | Ключ — имя класса в App\Services\Parser\Portals\
  8. | Значение true/false — включён/выключен
  9. */
  10. 'portals' => [
  11. 'Encar' => true,
  12. ],
  13. /*
  14. |--------------------------------------------------------------------------
  15. | Интервал между запросами (секунды)
  16. |--------------------------------------------------------------------------
  17. | Можно переопределить глобально здесь, либо константой внутри портала.
  18. | Портальная константа REQUEST_INTERVAL имеет приоритет.
  19. */
  20. 'request_interval' => 2,
  21. /*
  22. |--------------------------------------------------------------------------
  23. | Промт для ChatGPT
  24. |--------------------------------------------------------------------------
  25. | {html} — плейсхолдер, куда подставляется HTML страницы автомобиля.
  26. | Ответ модели должен быть строго JSON (без markdown-обёртки).
  27. */
  28. 'gpt_prompt' => <<<'PROMPT'
  29. Вы — помощник по извлечению данных об автомобилях.
  30. Извлеките всю доступную информацию об объявлении автомобиля из HTML-кода ниже и верните её в виде одного корректного JSON-объекта.
  31. Правила:
  32. * Верните ТОЛЬКО чистый JSON, без Markdown, без обратных кавычек и без пояснений.
  33. * Все ключи должны точно соответствовать предоставленной схеме.
  34. * Если какое-либо поле отсутствует в HTML, используйте значение null.
  35. * Для булевых полей используйте true/false (не 1/0 и не строки).
  36. * Для числовых полей используйте числа (не строки).
  37. * Допустимые значения для `engine_type`: `petrol` | `diesel` | `hybrid` | `electric` | `gas` | `other`
  38. * Допустимые значения для `transmission`: `manual` | `automatic` | `robot` | `variator` | `electric`
  39. * Допустимые значения для `drive`: `FWD` | `RWD` | `AWD` | `4WD`
  40. * Допустимые значения для `steering`: `left` | `right`
  41. * Допустимые значения для `pts`: `original` | `duplicate` | `electronic` | `null`
  42. * Допустимые значения для `condition`: `new` | `used`
  43. * Поле `status` всегда устанавливайте в значение `"draft"`
  44. * Поле `options` должно содержать массив строк с описанием найденных на странице опций и оснащения автомобиля
  45. * Поле `photos_gallery` должно содержать массив абсолютных URL-адресов изображений, найденных на странице
  46. * Поле `photo_main` должно содержать URL основного (обложечного) изображения
  47. * В объекте `prices` извлекайте все найденные цены и валюты; отсутствующие значения оставляйте как `null`
  48. * Поле `country_origin` должно содержать название страны на русском языке (например: `"Корея"`, `"Япония"`)
  49. * Информацию о марке, модели и модификации надо перевести на англйиский, остальное на русский язык
  50. HTML:
  51. {html}
  52. PROMPT,
  53. /*
  54. |--------------------------------------------------------------------------
  55. | ChatGPT / OpenAI настройки
  56. |--------------------------------------------------------------------------
  57. */
  58. 'openai' => [
  59. 'api_key' => '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',
  60. 'model' => 'chat-latest',
  61. //'max_tokens' => 2000,
  62. 'temperature' => 0,
  63. ],
  64. ];