Задать вопрос
  • Почему Chat GPT возвращает 1 результат вместо 2-х?

    @pahom-ka Автор вопроса
    rPman, да собственно как в документации...
    Вот так собирается запрос
    prompt_batch_data = []
        prompt_description = f"большой промпт"
        prompt_description_jsonl_object = ai_batch_generate(1, prompt_description)
        prompt_title = f"маленький промпт"
        prompt_title_jsonl_object = ai_batch_generate(2, prompt_title)
        prompt_batch_data.extend([prompt_description_jsonl_object, prompt_title_jsonl_object])
        task_id = process_batch(
            prompt_batch_data=prompt_batch_data,
            filename="article_plan.jsonl",
            description="article_plan",
            client=client
        )


    вспомогательные функции
    def ai_batch_generate(custom_id, prompt, role):
        """
        Формирует jsonl объект для batch запросов
        :param custom_id:  Список id данных, только уникальные в рамках текущей задачи id
        :param prompt: Сформированный промпт
        :param role: роль нейронки в запросе
        :return: 
        """
        prompt_batch_data = []
        jsonl_object = {
            "custom_id": str(custom_id),
            "method": "POST",
            "url": "/v1/chat/completions",
            "body": {
                "model": "gpt-4o",
                "messages": [
                    {"role": "system", "content": role},
                    {"role": "user",
                     "content": prompt}
                ],
                "max_tokens": 1500
            }
        }
    
        return jsonl_object
    
    
    def process_batch(
            prompt_batch_data,
            filename,
            description,
            client
    ):
        """
        Обрабатывает данные батча: сохраняет в .jsonl, отправляет в OpenAI,
        создаёт задачу и запускает мониторинг.
    
        :param prompt_batch_data: Список словарей с данными для генерации.
        :param filename: Имя выходного файла (.jsonl).
        :param description: Описание задачи (будет использоваться в метаданных).
        :param client: Клиент OpenAI с методами `files.create` и `batches.create`.
        """
        # Сохраняем данные в .jsonl файл
        with open(filename, 'w', encoding='utf-8') as f:
            for item in prompt_batch_data:
                f.write(json.dumps(item, ensure_ascii=False) + "\n")
    
        # Загружаем файл в OpenAI
        batch_input_file = client.files.create(
            file=open(filename, "rb"),
            purpose="batch"
        )
        batch_input_file_id = batch_input_file.id
    
        # Создаем батч-запрос
        send_batch = client.batches.create(
            input_file_id=batch_input_file_id,
            endpoint="/v1/chat/completions",
            completion_window="24h",
            metadata={
                "description": description
            }
        )
        task_id = send_batch.id
        logging.info(f"Генерация '{description}' отправлена в нейронку, задача: {task_id}")
        return task_id

    Потом мониторю ответ, получаю вот такой
    nSqgMvShSSGL7eX1S8sM1Q.jpeg
    обращаюсь по этому output_file_id
    batch_data = client.files.content(batch_file)
        jsonl_string = batch_data.text
    
        # Результирующий список
        prompt_batch_data = []
        # Обрабатываем строки файла построчно
        json_object = json.loads(jsonl_string[0])  # Преобразуем строку в JSON-объект
        custom_id = json_object['custom_id']  # Извлекаем custom_id
        content = json_object['response']['body']['choices'][0]['message']['content']
        content = prepare_content(content)  # Извлекаем и очищаем контент

    и просто заглядывая в ответ chatgpt вижу такой ответ:
    {
      "id": "batch_req_67fcf1bf76588190b9a6cf7b871babfb",
      "custom_id": "1",
      "response": {
        "status_code": 200,
        "request_id": "bf2823953630da7654984be23c14703b",
        "body": {
          "id": "chatcmpl-BMCIlgiLSLFb3I3pUImzV1115A3D9",
          "object": "chat.completion",
          "created": 1744630203,
          "model": "gpt-4o-2024-08-06",
          "choices": [
            {
              "index": 0,
              "message": {
                "role": "assistant",
                "content": "ответ",
                "refusal": null,
                "annotations": []
              },
              "logprobs": null,
              "finish_reason": "stop"
            }
          ],
          "usage": {
            "prompt_tokens": 106,
            "completion_tokens": 309,
            "total_tokens": 415,
            "prompt_tokens_details": {
              "cached_tokens": 0,
              "audio_tokens": 0
            },
            "completion_tokens_details": {
              "reasoning_tokens": 0,
              "audio_tokens": 0,
              "accepted_prediction_tokens": 0,
              "rejected_prediction_tokens": 0
            }
          },
          "service_tier": "default",
          "system_fingerprint": "fp_fa860cbac8"
        }
      },
      "error": null
    }

    то есть данные только для custom_id 1, данных по custom_id 2 нет.
    Написано
  • TV Xiaomi - 5Гц частота Wi-Fi и VLESS?

    @pahom-ka
    5ghz имеет разные сюрпризы.
    Например у меня простецкий роутер от ростелеком с adsl и новый чип intel ax200 не очень хотел к нему подключаться.
    Помогло отключение 5ghz, да. Но я не сильно теряю в скорости adsl и вокруг мало сетей 2.4.
    В вашем случае надо пробовать крутить ширину канала, используемые каналы, всякие beam и прочее и искать то, что может повлиять.
    А, ещё есть такой нюанс - интернет просто пропадает, или пишет, что сеть wi-fi без интернета? Если второе - то может надо настроить DNS в VLESS-клиенте. Условно проверочный домен не резолвится и например android приставка думает, что интернета вообще нет.
    Ещё вариант - правила маршрутизации телевизор неправильно применяет.
    Какой клиент vless используете? Попробуйте другой, например я использую vray2ng, на android приставке и всё ок. Настроил там режим VPN, только для lazymediadeluxe, для youtube, а кинопоиск и остальные работают напрямую, и всё прекрасно работает. DNS тоже направил на свой сервер.

    Ещё вариант, если роутер продвинутый - поднять на нём vless клиент и трафик с телевизора заворачивать в туннель. Из минусов - трафик пойдёт весь туда, могут какие-то приложения перестать работать, т.к. будут блокировать всё, что не местное.
    Написано
  • Как подключиться к ubuntu 20.04 по vnc встроенной в систему c windows 10 без отключения шифрования?

    @pahom-ka
    Я хочу сказать, что скорее всего Ubuntu не сконфигурирована для работы VNC-сервера и вам надо его настроить. Скорее всего самостоятельно это сделать не сможете, гуглить не хочется, поэтому есть вот такие скрипты автоустановки, которые все сделают сами.
  • Что пытается сказать Google Lighthouse?

    @pahom-ka
    Заметим, что именно скрипты, а не стили.
    И не забываем, что defer определяет порядок загрузки скриптов по очереди, т.е. если используется jquery - сначала её грузим, потом плагины.
  • Браузер захламлен рекламой. Что делать?

    @pahom-ka
    Ага, например именно такие антивирусы не стоит ставить. Dr.WEB ругается на неё.