Агент ИИ возвращает объект-генератор вместо объекта

Использование CrewAI для создания ИИ-агента для разработчиков игр. Вместо запуска агентов, как ожидалось, мой код возвращает объект <crewai.project.crew_base.CrewBase..WrappedClass объект по адресу 0x1012252d0>.

Я ожидаю такого вывода:

 [DEBUG]: == Working Agent: Financial Researcher
 [INFO]: == Starting Task: You will create a game using python, these are the instructions:
    Instructions
    ------------
        {game} 

    Your Final answer must be the full python code, only the python code and nothing else.

> Entering new CrewAgentExecutor chain...

В main.py я попытался преобразовать результат с помощью str() и добавил оператор печати, чтобы определить, где перестает работать:

import os
from dotenv import load_dotenv
load_dotenv()

from crewai.project import CrewBase, crew
from crewai import Crew, Process
from .tasks import GameTasks
from .agents import GameAgents


@CrewBase
class GameBuildCrew():
    tasks = GameTasks()
    agents = GameAgents()

    def __init__(self):
        print("## Welcome to the Game Crew")
        print('-------------------------------')
        self.game = input("What is the game you would like to build? What will be the mechanics?\n")

    @crew
    def crew(self) -> Crew:
        print("crew called")
        return Crew(
            agents=[
                self.agents.senior_engineer_agent(),
                self.agents.qa_engineer_agent(),
                self.agents.chief_qa_engineer_agent()
            ],
            tasks=[
                self.tasks.code_task(self.senior_engineer_agent),
                self.tasks.review_task(self.qa_engineer_agent),
                self.tasks.evaluate_task(self.chief_qa_engineer_agent)
            ],
            process=Process.sequential,
            verbose=2,
        )

    def run(self):
        print("run called")

        crew_instance = self.crew()
        result = crew_instance.kickoff()

        print("\n\n########################")
        print("## Here is the result")
        print("########################\n")
        print("final code for the game:")
        print(result)


if __name__ == '__main__':
    game_build_crew = GameBuildCrew()
    game_build_crew.run()

Ни одна из строк ожидаемого вывода не входит в этот код. Что вы подразумеваете под «мой код возвращается»? Вы ничего не «возвращаете». Вы ПЕЧАТАЕТЕ кучу всего. Какие отпечатки?

Tim Roberts 23.07.2024 00:34

Насколько я понимаю, результат функции запуска содержит то, что возвращает Crew_instance.kickoff(). Я пытаюсь распечатать (результат), но все, что я получаю в консоли, это <crewai.project.crew_base.CrewBase..WrappedClass объект по адресу 0x1012252d0>

codereyes 23.07.2024 02:30

Хорошо, но что с того? Содержит ли этот объект необходимую вам информацию? То, что он не печатается, не означает, что это не ваш результат.

Tim Roberts 23.07.2024 03:53

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

codereyes 30.07.2024 21:52

@codereyes. Если вы хотите создать сообщество, вам нужно задавать правильные вопросы (см. Как задавать ), показывая, что вы пробовали и какие исследования вы провели, а также предоставить минимально воспроизводимый пример , чтобы другие могли воспроизвести вашу проблему. . Часто создание минимально воспроизводимого примера приводит к решению вашей собственной проблемы. С помощью предоставленной вами выше информации никто другой не сможет воссоздать вашу проблему для ее отладки, тем более что основной причиной, которую вы обнаружили, была ошибка импорта в скрипте, которым вы не поделились.

nigh_anxiety 30.07.2024 22:50
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
4
5
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема заключалась в неправильном импорте langchain в файле Agents.py. после добавления «from langchain_groq import ChatGroq» в файл Agents.py я смог получить ожидаемый результат.

Другие вопросы по теме