y9yk / blog-post-writer-using-multi-agents-ai-system

Blog post writer using multi-agents AI system
1 stars 0 forks source link

Use context state using research output for to create a detail posting #7

Closed y9yk closed 3 months ago

y9yk commented 3 months ago

Issue Details

y9yk commented 3 months ago

서론-본론-결론을 쓰도록 나누는 것보다 훨씬 디테일하게 설계가 되어야, 좀 볼 만한 글이 나옴

create-issue-branch[bot] commented 3 months ago

Branch issue-7-Use_context_state_using_research_output_for_to_create_a_detail_posting created!

y9yk commented 3 months ago

아래와 같은 방식으로,

image

y9yk commented 3 months ago

state에 넣은 목차는 어느 레벨로 꺼내와서 글을 쓰게 할 것인지?

y9yk commented 3 months ago

서론, 본론, 결론으로 구성되는 것이라면 -> 본론만 본론 아래에 있는 세부 목차들을 이용하게 만들면 될 것 같다.

{'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 최적화 방법']]}
y9yk commented 3 months ago

세부 목차를 뽑아내고 -> 이를 markdown으로 다시 만들어서 인풋으로 넣어주는 프로세스 추가

y9yk commented 3 months ago

ScrapeWebsiteTool을 이용할 때, 아래 사항을 db에 기록할 수 있도록 해야 함

y9yk commented 3 months ago

chain_of_thought도 기록되면 좋을 거 같다.

y9yk commented 3 months ago

gpt-researcher의 구현을 검토하는 게 좋을 거 같다

y9yk commented 3 months ago

cost를 위해서 crewai dependency를 끊어낼 필요도 있는 거 같다.

y9yk commented 3 months ago

blog_poster와 같은 main module을 만들고, 이를 아래에서 이용할 수 있도록 dir. 설계를 한다.

y9yk commented 3 months ago

아래와 같이 구성될 수 있도록 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
y9yk commented 3 months ago

closed via #8