Closed y9yk closed 3 months ago
서론-본론-결론을 쓰도록 나누는 것보다 훨씬 디테일하게 설계가 되어야, 좀 볼 만한 글이 나옴
아래와 같은 방식으로,
state에 넣은 목차는 어느 레벨로 꺼내와서 글을 쓰게 할 것인지?
서론, 본론, 결론으로 구성되는 것이라면 -> 본론만 본론 아래에 있는 세부 목차들을 이용하게 만들면 될 것 같다.
{'1. LLM Multi Agents란 무엇인가?': {'1.1 주요 프레임워크 소개': ['**AgentScope**',
['[AgentScope GitHub Repository](https://github.com/modelscope/agentscope)',
'주요 기능: 쉬운 사용성, 높은 안정성, 액터 기반 분산 처리',
'설치 방법: pip 및 소스 코드 설치 방법 설명',
'예제 코드:',
'```\nfrom agentscope.agents import DialogAgent, UserAgent\nimport agentscope\n\nagentscope.init(model_configs="./model_configs.json")\n\ndialog_agent = DialogAgent(name="assistant", model_config_name="my_openai_config")\nuser_agent = UserAgent()\n\nx = None\nwhile True:\n x = dialog_agent(x)\n x = user_agent(x)\n if x.content == "exit":\n break\n```'],
'**MetaGPT**',
['[MetaGPT GitHub Repository](https://github.com/geekan/MetaGPT)',
'주요 기능: 자연어 프로그래밍을 위한 다중 에이전트 프레임워크',
'설치 방법 및 예제 코드 설명']]},
'2. CrewAI를 사용하여 블로그 포스트 작성하기': ['CrewAI 소개: CrewAI의 기능과 장점 설명',
'CrewAI 설치 및 설정',
['설치 방법: pip 설치 방법', '초기 설정: API 키 설정 등'],
'블로그 포스트 작성 과정',
['주제 선택 및 키워드 분석',
'콘텐츠 생성: CrewAI를 활용한 자동 생성 기능 설명',
'포스트 편집 및 최적화: 생성된 콘텐츠의 편집 및 SEO 최적화 방법']]}
세부 목차를 뽑아내고 -> 이를 markdown으로 다시 만들어서 인풋으로 넣어주는 프로세스 추가
ScrapeWebsiteTool을 이용할 때, 아래 사항을 db에 기록할 수 있도록 해야 함
chain_of_thought도 기록되면 좋을 거 같다.
gpt-researcher의 구현을 검토하는 게 좋을 거 같다
cost를 위해서 crewai dependency를 끊어낼 필요도 있는 거 같다.
blog_poster와 같은 main module을 만들고, 이를 아래에서 이용할 수 있도록 dir. 설계를 한다.
아래와 같이 구성될 수 있도록 blog_poster를 구성해본다.
- 1) initial research
- topic과 관련한 다양한 웹 사이트를 방문하면서 knowledge base를 만든다.
- 방문한 웹 페이지의 URL, 해당 웹 페이지의 내용의 원문, 그리고 topic과 연관된 문장들로만 구성된 내용은 저장된다.
- 방문한 웹 페이지의 URL -> visited_urls에 저장된다.
- global_urls도 같이 운영한다.
- topic과 연관된 문장들로만 구성된 내용 -> global_context로 저장된다.
- context는 global_context와 local_context로 구성된다.
- 2) introduction write
- 1번에서 작성된 global_context를 기준으로 introduction을 쓴다.
- 3) sub-queries generate
- 1번의 globla_context를 기준으로 sub-queries를 생산하는 역할을 수행한다.
- subtopics는 정확히는 topic과 관련된 sub-queries들이다.
- 4) research to use sub-queries
- sub-queies를 기준으로 1번을 재수행한다.
- global_context는 모두 local_context로 들어가서, 해당 context를 참고해서 research가 진행될 수 있도록 한다.
- existing_headers를 운영하면서, 내용이 중복되지 않도록 만전을 기한다.
- 생성된 sub_query_report는 모두 sub_query_reports로 머지된다.
- research가 다 끝나면 local_context는 다시 global_context로 머지된다.
- 5) finalize
- existing_headers를 toc로 구성한다.
- global_urls를 모두 refereces로 구성한다.
- 아래의 내용을 모두 merge한다.
- toc
- introduction
- sub_query_reports
- references
closed via #8
Issue Details