Автогенерация – TypeError: объект ‘NoneType’ не является итерируемым

Вопрос или проблема

У меня уже какое-то время возникают проблемы с фреймворком Autogen. ЯFollowed руководства на YouTube, документацию Autogen, выполнил необходимые установки и все равно получаю одну и ту же ошибку TypeError: ‘NoneType’ object is not iterable. Вот мой код, который я использовал, приложение создает папку с именем “coding”, после чего приложение разбивается и появляется эта ошибка.

        import os
        import autogen
        from autogen import AssistantAgent, UserProxyAgent

        os.environ["OPENAI_API_KEY"] = "dummy_key"

        llm_config_local = {"config_list" : [{
           "model": "gemma-2-2b-it-GGUF/gemma-2-2b-it-Q4_K_M.gguf",
            "base_url": "http://localhost:1234/v1/completions",
           "api_key": None,
           "price": [0, 0]
              }]}

        assistant = AssistantAgent("assistant", llm_config=llm_config_local)

        user_proxy = UserProxyAgent(
       "user_proxy", code_execution_config={"executor": 
            autogen.coding.LocalCommandLineCodeExecutor(work_dir="coding")}
          )

       # Начать чат
        user_proxy.initiate_chat(
        assistant,
        message="Постройте график изменения цен акций NVDA и TESLA с начала года.",
        )

Я действительно думаю, что это ошибка в Autogen, потому что я по-прежнему получаю ту же ошибку, несмотря на реализацию разных кодовых баз.

Ответ или решение

Проблема, с которой вы столкнулись — ошибка TypeError: 'NoneType' object is not iterable, возможно, связана с тем, что ваша конфигурация или возврат данных из функции не соответствует ожидаемому формату.

Вот несколько шагов, которые могут помочь диагностировать и устранить эту ошибку:

  1. Проверьте конфигурацию: Убедитесь, что в вашем llm_config_local все параметры правильно определены. Например, значение api_key у вас установлено в None. Это может вызвать проблемы, если где-то в коде ожидалось, что этот ключ будет валидным (хотя иногда это может быть допустимо, если ваша локальная реализация не требует ключа).

  2. Проверьте метод инициирования чата: Ваша функция initiate_chat ожидает, что будет возвращен результат, который можно будет итерировать. Если, например, вы не получаете ответа от модели или ответ некорректный, это может привести к данной ошибке. Проверьте логи выполнения, чтобы удостовериться, что message корректно обрабатывается.

  3. Отладка: Попробуйте добавить отладочные сообщения перед вызовом initiate_chat и после него, чтобы проверить возвращаемые результаты. Например, вы можете сделать следующее:

    response = user_proxy.initiate_chat(
       assistant,
       message="Plot a chart of NVDA and TESLA stock price change YTD.",
    )
    print("Response received:", response)

    Если response будет иметь значение None, это и будет источником проблемы.

  4. Проверка рабочей директории: Убедитесь, что путь к рабочей директории coding не вызывает конфликтов и доступен для записи. Проблемы с доступом к файловой системе могут также привести к ошибкам в исполнении кода.

  5. Обновление библиотек: Убедитесь, что все пакеты, включая autogen, обновлены до последней версии. Иногда ошибки могут быть уже исправлены в новых релизах.

  6. Эксперимент с минимальным примером: Постарайтесь минимизировать ваш код до самого необходимого, чтобы изолировать проблему. Например, попробуйте просто выполнить запрос к модели без использования UserProxyAgent и проверить, получаете ли вы ответ:

    # Пример запроса, чтобы проверить, что модель работает независимо
    response = assistant.generate("Простой тестовый запрос")
    print(response)

Если вышеизложенные шаги не помогут, вам стоит обратиться к сообществу разработчиков autogen через GitHub или другие каналы поддержки, предоставив им минимальный пример кода, который воспроизводит вашу проблему. Это поможет выявить, является ли это известной проблемой или багом, требующим исправления.

Оцените материал
Добавить комментарий

Капча загружается...