에이전시를 위한 164개 스킬과 24개 에이전트를 갖춘 오픈소스 AI 마케팅 플러그인.
한국어는 runchr 제공 번역입니다. 원문 README는 English tool page.
BettaFish
BettaFish는 처음부터 구축한 멀티 에이전트 여론 분석 시스템입니다. 30개 이상의 소셜 미디어 플랫폼을 크롤링하고, 토론 포럼에서 전문화된 에이전트들을 실행합니다.
- Run
- docker compose up -d
- Interface
- web UI and chat
- Models
- LLM APIs plus fine-tuned and statistical models
프로젝트 README (번역)
GitHub ↗Written by the project's own authors, not by runchr. Snapshot taken 2026-10-28.
English | 中文文档
⚡ 프로젝트 개요
"微舆"는 0에서 구현한 혁신적인 멀티 에이전트 여론 분석 시스템으로, 정보 고립을 깨고 여론의 원형을 복원하며 미래 추세를 예측하고 의사결정을 지원합니다. 사용자는 채팅하듯 분석 요구를 제시하기만 하면, 에이전트가 국내외 30개 이상 주요 소셜 미디어와 수백만 건의 대중 댓글을 전자동으로 분석합니다.
"微舆"는 "微鱼"와 발음이 같으며, BettaFish는 몸집은 작지만 매우 호전적이고 아름다운 물고기로, "작지만 강하고 도전을 두려워하지 않음"을 상징합니다.
시스템이 "우한대학 여론"을 예시로 생성한 연구 보고서 보기: 우한대학 브랜드 평판 심층 분석 보고서
시스템이 "우한대학 여론"을 예시로 한 번 완전히 실행된 영상 보기: 영상-우한대학 브랜드 평판 심층 분석 보고서
보고서 품질뿐만 아니라, 유사 제품 대비 우리는 🚀6대 우위를 갖추고 있습니다:
AI 기반 전방위 모니터링: AI 크롤러 클러스터가 7x24시간 중단 없이 작업하며, 웨이보, 샤오홍슈, 더우인, 콰이쇼우 등 10개 이상의 국내외 핵심 소셜 미디어를 전면 커버합니다. 실시간으로 화제 콘텐츠를 포착할 뿐만 아니라 방대한 사용자 댓글까지 드릴다운하여, 가장 진실되고 가장 광범위한 대중의 목소리를 들을 수 있습니다.
LLM을 초월하는 복합 분석 엔진: 우리는 설계된 5개 전문 Agent에 의존할 뿐만 아니라, 파인튜닝 모델, 통계 모델 등의 미들웨어를 융합합니다. 다중 모델 협업을 통해 분석 결과의 깊이, 정확도, 다차원적 시각을 보장합니다.
강력한 멀티모달 능력: 이미지·텍스트 제한을 돌파하여 더우인, 콰이쇼우 등 숏폼 영상 콘텐츠를 심층 분석하고, 현대 검색 엔진의 날씨, 캘린더, 주식 등 구조화된 멀티모달 정보 카드를 정밀하게 추출하여 여론 동향을 전면적으로 파악할 수 있습니다.
Agent "포럼" 협업 메커니즘: 서로 다른 Agent에 고유한 도구 세트와 사고 모드를 부여하고, 토론 진행자 모델을 도입하여 "포럼" 메커니즘을 통해 연쇄적 사고 충돌과 토론을 진행합니다. 이는 단일 모델의 사고 한계와 교류로 인한 동질화를 방지할 뿐만 아니라, 더 높은 품질의 집단 지성과 의사결정 지원을 촉발합니다.
공사 데이터 원활한 융합: 플랫폼은 공개 여론을 분석할 뿐만 아니라, 높은 보안성의 인터페이스를 제공하여 내부 업무 데이터베이스와 여론 데이터의 원활한 통합을 지원합니다. 데이터 장벽을 허물어 수직 업무에 "외부 트렌드+내부 인사이트"의 강력한 분석 능력을 제공합니다.
경량화 및 높은 확장성 프레임워크: 순수 Python 모듈식 설계 기반으로 경량화, 원클릭 배포를 구현합니다. 코드 구조가 명확하여 개발자가 사용자 정의 모델과 업무 로직을 쉽게 통합하고, 플랫폼의 빠른 확장과 심층 커스터마이징을 실현할 수 있습니다.
여론에서 시작하되 여론에 그치지 않습니다. "微舆"의 목표는 모든 업무 시나리오를 구동하는 간결하고 범용적인 데이터 분석 엔진이 되는 것입니다.
예를 들어, Agent 도구 세트의 api 파라미터와 prompt만 간단히 수정하면 금융 분야의 시장 분석 시스템으로 바꿀 수 있습니다.
비교적 활발한 L사이트 프로젝트 토론帖 첨부: https://linux.do/t/topic/1009280
L사이트 회원이 만든 평가 보기 오픈소스 프로젝트(微舆)와 manus|minimax|ChatGPT|Perplexity 비교
전통적인 데이터 대시보드와 작별하고, "微舆"에서는 모든 것이 하나의 간단한 질문으로 시작됩니다. 대화하듯 분석 요구를 제시하기만 하면 됩니다.
🪄 스폰서
LLM 모델 API 스폰서:
AI联网 검색, 파일 파싱 및 웹 콘텐츠 크롤링 등 에이전트 핵심 능력 제공업체:
안스파이 오픈 플랫폼(Anspire Open)은 에이전트 시대를 향한 선도적인 인프라 제공업체입니다. 우리는 개발자에게 강력한 에이전트 구축에 필요한 핵심 능력 스택을 제공하며, 현재 AI联网 검색【다중 버전, 매우 경쟁력 있는 가격】, 파일 파싱【기간 한정 무료】 및 웹 콘텐츠 크롤링【기간 한정 무료】, 클라우드 브라우저 자동화(Anspire Browser Agent)【내부 테스트】, 다중 라운드 재작성 등의 서비스를 출시하여, 에이전트가 복잡한 디지털 세계를 연결하고 조작하는 데 견고한 기반을 지속적으로 제공합니다. Dify, Coze, 元器 등 주류 에이전트 플랫폼에 원활하게 통합될 수 있습니다. 투명한 포인트 과금 체계와 모듈식 설계를 통해 기업에 효율적이고 저비용의 맞춤형 지원을 제공하여 지능화 업그레이드 프로세스를 가속화합니다.
AI 이미지/영상 생성에 특화된 저가 API 플랫폼, GPT-Image-2 최저 $0.006/장:
APIMart가 본 프로젝트를 후원해 주셔서 감사합니다! APIMart는 AI 이미지/영상 생성에 특화된 저가 API 플랫폼으로, GPT-Image-2 최저 $0.006/장, 1달러로 160장 이상 생성 가능합니다. 이미지, 영상 모두 하나의 비동기 API로 처리하며, 작업 제출 후 ID를 받고 콜백으로 결과를 받아, 만 장 배치도 타임아웃 없이, 모델 교체 시 코드 변경 불필요. 사용량 기반 과금, 월정액 없음, 이 등록 링크를 통해 등록하면 바로 사용 가능합니다.
🏗️ 시스템 아키텍처
전체 아키텍처 다이어그램
Insight Agent 사설 데이터베이스 마이닝: 사설 여론 데이터베이스 심층 분석 AI 에이전트
Media Agent 멀티모달 콘텐츠 분석: 강력한 멀티모달 능력을 갖춘 AI 에이전트
Query Agent 정밀 정보 검색: 국내외 웹 검색 능력을 갖춘 AI 에이전트
Report Agent 지능형 보고서 생성: 내장 템플릿의 다중 라운드 보고서 생성 AI 에이전트
한 번의 완전한 분석 프로세스
단계
단계명
주요 작업
참여 컴포넌트
루프 특성
1
사용자 질문
Flask 메인 앱이 쿼리 수신
Flask 메인 앱
-
2
병렬 시작
세 Agent가 동시에 작업 시작
Query Agent, Media Agent, Insight Agent
-
3
초기 분석
각 Agent가 전용 도구로 개요 검색
각 Agent + 전용 도구 세트
-
4
전략 수립
초기 결과 기반 청크 연구 전략 수립
각 Agent 내부 의사결정 모듈
-
5-N
루프 단계
포럼 협업 + 심층 연구
ForumEngine + 모든 Agent
다중 라운드 루프
5.1
심층 연구
각 Agent가 포럼 진행자 안내 기반으로 전문 검색
각 Agent + 성찰 메커니즘 + 포럼 안내
매 라운드 루프
5.2
포럼 협업
ForumEngine이 Agent 발언 모니터링 및 진행자 안내 생성
ForumEngine + LLM 진행자
매 라운드 루프
5.3
교류 융합
각 Agent가 토론에 따라 연구 방향 조정
각 Agent + forum_reader 도구
매 라운드 루프
N+1
결과 통합
Report Agent가 모든 분석 결과와 포럼 콘텐츠 수집
Report Agent
-
N+2
IR 중간 표현
템플릿과 스타일 동적 선택, 다중 라운드 메타데이터 생성, IR 중간 표현으로 제본
Report Agent + 템플릿 엔진
-
N+3
보고서 생성
청크별 품질 검사, IR 기반 인터랙티브 HTML 보고서 렌더링
Report Agent + 제본 엔진
-
프로젝트 코드 구조 트리
BettaFish/
├── QueryEngine/ # 국내외 뉴스 광범위 검색 Agent
│ ├── agent.py # Agent 메인 로직, 검색 및 분석 흐름 조정
│ ├── llms/ # LLM 인터페이스 래퍼
│ ├── nodes/ # 처리 노드: 검색, 포맷팅, 요약 등
│ ├── tools/ # 국내외 뉴스 검색 도구 세트
│ ├── utils/ # 유틸리티 함수
│ ├── state/ # 상태 관리
│ ├── prompts/ # 프롬프트 템플릿
│ └── ...
├── MediaEngine/ # 강력한 멀티모달 이해 Agent
│ ├── agent.py # Agent 메인 로직, 영상/이미지 등 멀티모달 콘텐츠 처리
│ ├── llms/ # LLM 인터페이스 래퍼
│ ├── nodes/ # 처리 노드: 검색, 포맷팅, 요약 등
│ ├── tools/ # 멀티모달 검색 도구 세트
│ ├── utils/ # 유틸리티 함수
│ ├── state/ # 상태 관리
│ ├── prompts/ # 프롬프트 템플릿
│ └── ...
├── InsightEngine/ # 사설 데이터베이스 마이닝 Agent
│ ├── agent.py # Agent 메인 로직, 데이터베이스 쿼리 및 분석 조정
│ ├── llms/ # LLM 인터페이스 래퍼
│ │ └── base.py # 통합 OpenAI 호환 클라이언트
│ ├── nodes/ # 처리 노드: 검색, 포맷팅, 요약 등
│ │ ├── base_node.py # 기본 노드 클래스
│ │ ├── search_node.py # 검색 노드
│ │ ├── formatting_node.py # 포맷팅 노드
│ │ ├── report_structure_node.py # 보고서 구조 노드
│ │ └── summary_node.py # 요약 노드
│ ├── tools/ # 데이터베이스 쿼리 및 분석 도구 세트
│ │ ├── keyword_optimizer.py # Qwen 키워드 최적화 미들웨어
│ │ ├── search.py # 데이터베이스 작업 도구 세트(토픽 검색, 댓글 조회 등)
│ │ └── sentiment_analyzer.py # 감정 분석 통합 도구
│ ├── utils/ # 유틸리티 함수
│ │ ├── config.py # 설정 관리
│ │ ├── db.py # SQLAlchemy 비동기 엔진 및 읽기 전용 쿼리 래퍼
│ │ └── text_processing.py # 텍스트 처리 도구
│ ├── state/ # 상태 관리
│ │ └── state.py # Agent 상태 정의
│ ├── prompts/ # 프롬프트 템플릿
│ │ └── prompts.py # 각종 프롬프트
│ └── __init__.py
├── ReportEngine/ # 다중 라운드 보고서 생성 Agent
│ ├── agent.py # 총 스케줄러: 템플릿 선택→레이아웃→분량→챕터→렌더링
│ ├── flask_interface.py # Flask/SSE 진입점, 작업 대기열 및 스트리밍 이벤트 관리
│ ├── llms/ # OpenAI 호환 LLM 래퍼
│ │ └── base.py # 통합 스트리밍/재시도 클라이언트
│ ├── core/ # 핵심 기능: 템플릿 파싱, 챕터 저장, 문서 제본
│ │ ├── template_parser.py # Markdown 템플릿 슬라이싱 및 slug 생성
│ │ ├── chapter_storage.py # 챕터 run 디렉토리, manifest 및 raw 스트림 쓰기
│ │ └── stitcher.py # Document IR 제본기, 앵커/메타데이터 보완
│ ├── ir/ # 보고서 중간 표현(IR) 계약 및 검증
│ │ ├── schema.py # 블록/마크 Schema 상수 정의
│ │ └── validator.py # 챕터 JSON 구조 검증기
│ ├── nodes/ # 전流程 추론 노드
│ │ ├── base_node.py # 노드 기반 클래스+로그/상태 훅
│ │ ├── template_selection_node.py # 템플릿 후보 수집 및 LLM 선별
│ │ ├── document_layout_node.py # 제목/목차/테마 디자인
│ │ ├── word_budget_node.py # 분량 계획 및 챕터 지시 생성
│ │ └── chapter_generation_node.py # 챕터급 JSON 생성+검증
│ ├── prompts/ # 프롬프트 라이브러리 및 Schema 설명
│ │ └── prompts.py # 템플릿 선택/레이아웃/분량/챕터 프롬프트
│ ├── renderers/ # IR 렌더러
│ │ ├── html_renderer.py # Document IR→인터랙티브 HTML
│ │ ├── pdf_renderer.py # HTML→PDF 내보내기(WeasyPrint)
│ │ ├── pdf_layout_optimizer.py # PDF 레이아웃 최적화기
│ │ └── chart_to_svg.py # 차트→SVG 도구
│ ├── state/ # 작업/메타데이터 상태 모델
│ │ └── state.py # ReportState 및 직렬화 도구
│ ├── utils/ # 설정 및 보조 도구
│ │ ├── config.py # Pydantic Settings 및 출력 도우미
│ │ ├── dependency_check.py # 의존성 검사 도구
│ │ ├── json_parser.py # JSON 파싱 도구
│ │ ├── chart_validator.py # 차트 검증 도구
│ │ └── chart_repair_api.py # 차트 복구 API
│ ├── report_template/ # Markdown 템플릿 라이브러리
│ │ ├── 企业品牌声誉分析报告.md
│ │ └── ...
│ └── __init__.py
├── ForumEngine/ # 포럼 엔진: Agent 협업 메커니즘
│ ├── monitor.py # 로그 모니터링 및 포럼 관리 핵심
│ ├── llm_host.py # 포럼 진행자 LLM 모듈
│ └── __init__.py
├── MindSpider/ # 소셜 미디어 크롤러 시스템
│ ├── main.py # 크롤러 메인 프로그램 진입점
│ ├── config.py # 크롤러 설정 파일
│ ├── BroadTopicExtraction/ # 토픽 추출 모듈
│ │ ├── main.py # 토픽 추출 메인 프로그램
│ │ ├── database_manager.py # 데이터베이스 관리자
│ │ ├── get_today_news.py # 오늘 뉴스 가져오기
│ │ └── topic_extractor.py # 토픽 추출기
│ ├── DeepSentimentCrawling/ # 심층 여론 크롤링 모듈
│ │ ├── main.py # 심층 크롤링 메인 프로그램
│ │ ├── keyword_manager.py # 키워드 관리자
│ │ ├── platform_crawler.py # 플랫폼 크롤러 관리
│ │ └── MediaCrawler/ # 소셜 미디어 크롤러 핵심
│ │ ├── main.py
│ │ ├── config/ # 각 플랫폼 설정
│ │ ├── media_platform/ # 각 플랫폼 크롤러 구현
│ │ └── ...
│ └── schema/ # 데이터베이스 구조 정의
│ ├── db_manager.py # 데이터베이스 관리자
│ ├── init_database.py # 데이터베이스 초기화 스크립트
│ ├── mindspider_tables.sql # 데이터베이스 테이블 구조 SQL
│ ├── models_bigdata.py # 대규모 미디어 여론 테이블의 SQLAlchemy 매핑
│ └── models_sa.py # DailyTopic/Task 등 확장 테이블 ORM 모델
├── SentimentAnalysisModel/ # 감정 분석 모델 모음
│ ├── WeiboSentiment_Finetuned/ # 파인튜닝 BERT/GPT-2 모델
│ │ ├── BertChinese-Lora/ # BERT 중국어 LoRA 파인튜닝
│ │ │ ├── train.py
│ │ │ ├── predict.py
│ │ │ └── ...
│ │ └── GPT2-Lora/ # GPT-2 LoRA 파인튜닝
│ │ ├── train.py
│ │ ├── predict.py
│ │ └── ...
│ ├── WeiboMultilingualSentiment/ # 다국어 감정 분석
│ │ ├── train.py
│ │ ├── predict.py
│ │ └── ...
│ ├── WeiboSentiment_SmallQwen/ # 소형 파라미터 Qwen3 파인튜닝
│ │ ├── train.py
│ │ ├── predict_universal.py
│ │ └── ...
│ └── WeiboSentiment_MachineLearning/ # 전통 머신러닝 방법
│ ├── train.py
│ ├── predict.py
│ └── ...
├── SingleEngineApp/ # 개별 Agent의 Streamlit 앱
│ ├── query_engine_streamlit_app.py # QueryEngine 독립 앱
│ ├── media_engine_streamlit_app.py # MediaEngine 독립 앱
│ └── insight_engine_streamlit_app.py # InsightEngine 독립 앱
├── query_engine_streamlit_reports/ # QueryEngine 단일 앱 실행 출력
├── media_engine_streamlit_reports/ # MediaEngine 단일 앱 실행 출력
├── insight_engine_streamlit_reports/ # InsightEngine 단일 앱 실행 출력
├── templates/ # Flask 프론트엔드 템플릿
│ └── index.html # 메인 인터페이스 HTML
├── static/ # 정적 리소스
│ ├── image/ # 이미지 리소스
│ │ └── ...
│ ├── Partial README for PDF Exporting/ # PDF 내보내기 의존성 설정 설명
│ └── v2_report_example/ # 보고서 렌더링 예시
│ └── report_all_blocks_demo/ # 전체 블록 유형 데모(HTML/PDF/MD)
├── logs/ # 실행 로그 디렉토리
├── final_reports/ # 최종 생성 보고서 파일
│ ├── ir/ # 보고서 IR JSON 파일
│ └── *.html # 최종 HTML 보고서
├── utils/ # 공통 유틸리티 함수
│ ├── forum_reader.py # Agent 간 포럼 통신 도구
│ ├── github_issues.py # 통합 GitHub Issue 링크 및 오류 안내 생성
│ └── retry_helper.py # 네트워크 요청 재시도 메커니즘 도구
├── tests/ # 단위 테스트 및 통합 테스트
│ ├── run_tests.py # pytest 진입점 스크립트
│ ├── test_monitor.py # ForumEngine 모니터링 단위 테스트
│ ├── test_report_engine_sanitization.py # ReportEngine 보안성 테스트
│ └── ...
├── app.py # Flask 메인 앱 진입점
├── config.py # 전역 설정 파일
├── .env.example # 환경 변수 예시 파일
├── docker-compose.yml # Docker 다중 서비스 오케스트레이션 설정
├── Dockerfile # Docker 이미지 빌드 파일
├── requirements.txt # Python 의존성 패키지 목록
├── regenerate_latest_html.py # 최신 챕터로 재제본 및 HTML 렌더링
├── regenerate_latest_md.py # 최신 챕터로 재제본 및 Markdown 렌더링
├── regenerate_latest_pdf.py # PDF 재생성 도구 스크립트
├── report_engine_only.py # Report Engine 명령줄 버전
├── README.md # 중국어 설명 문서
├── README-EN.md # 영어 설명 문서
├── CONTRIBUTING.md # 중국어 기여 가이드
├── CONTRIBUTING-EN.md # 영어 기여 가이드
└── LICENSE # GPL-2.0 오픈소스 라이선스
🚀 빠른 시작(Docker)
1. 프로젝트 시작
.env.example 파일을 복사하여 .env로 이름을 지정하고, .env 파일의 환경 변수를 필요에 따라 설정합니다
다음 명령을 실행하여 모든 서비스를 백그라운드에서 시작합니다:
docker compose up -d
참고: 이미지 풀 속도가 느린 경우, 원본 docker-compose.yml 파일에서 이미 주석 방식으로 대체 이미지 주소를 제공하여 교체할 수 있도록 했습니다
2. 설정 설명
데이터베이스 설정(PostgreSQL)
다음 파라미터에 따라 데이터베이스 연결 정보를 설정하세요. Mysql도 지원하며 직접 수정 가능합니다:
설정 항목
입력 값
설명
DB_HOST
db
데이터베이스 서비스 이름(docker-compose.yml의 서비스명에 대응)
DB_PORT
5432
기본 PostgreSQL 포트
DB_USER
bettafish
데이터베이스 사용자 이름
DB_PASSWORD
bettafish
데이터베이스 비밀번호
DB_NAME
bettafish
데이터베이스 이름
기타
기본값 유지
데이터베이스 연결 풀 등 기타 파라미터는 기본 설정을 유지하세요.
대형 모델 설정
우리의 모든 LLM 호출은 OpenAI의 API 인터페이스 표준을 사용합니다
데이터베이스 설정을 완료한 후, 모든 대형 모델 관련 파라미터를 정상적으로 설정하여 시스템이 선택한 대형 모델 서비스에 연결될 수 있도록 하세요.
위의 모든 설정을 완료하고 저장하면 시스템이 정상적으로 실행됩니다.
🔧 소스 코드 시작 가이드
Agent 시스템 구축을 처음 배우는 경우, 매우 간단한 demo부터 시작할 수 있습니다: Deep Search Agent Demo
환경 요구 사항
운영 체제: Windows, Linux, MacOS
Python 버전: 3.9+
Conda: Anaconda 또는 Miniconda
데이터베이스: PostgreSQL(권장) 또는 MySQL
메모리: 2GB 이상 권장
1. 환경 생성
Conda 사용 시
# conda 환경 생성
conda create -n your_conda_name python=3.11
conda activate your_conda_name
uv 사용 시
# uv 환경 생성
uv venv --python 3.11 # 3.11 환경 생성
2. PDF 내보내기所需 시스템 의존성 설치(선택)
이 부분에는 자세한 설정 설명이 있습니다: 필요 의존성 설정
3. 의존성 패키지 설치
2단계를 건너뛰면 weasyprint 라이브러리가 설치되지 않아 PDF 기능이 정상적으로 작동하지 않을 수 있습니다.
# 기본 의존성 설치
pip install -r requirements.txt
# uv 버전 명령(더 빠른 설치)
uv pip install -r requirements.txt
# 로컬 감정 분석 모델을 사용하지 않으려면(연산 요구가 매우 작아 기본적으로 cpu 버전 설치), 해당 파일의 "머신러닝" 부분을 주석 처리한 후 명령을 실행하세요
4. Playwright 브라우저 드라이버 설치
# 브라우저 드라이버 설치(크롤러 기능용)
playwright install chromium
5. LLM 및 데이터베이스 설정
프로젝트 루트 디렉토리의 .env.example 파일을 복사하여 .env로 이름을 지정합니다
.env 파일을 편집하여 API 키를 입력합니다(자신의 모델, 검색 에이전트를 선택할 수도 있으며, 자세한 내용은 루트 디렉토리 .env.example 파일 내 또는 루트 디렉토리 config.py의 설명 참조):
# ====================== 데이터베이스 설정 ======================
# 데이터베이스 호스트, 예: localhost 또는 127.0.0.1
DB_HOST=your_db_host
# 데이터베이스 포트 번호, postgresql 기본 5432, mysql 기본 3306
DB_PORT=5432
# 데이터베이스 사용자 이름
DB_USER=your_db_user
# 데이터베이스 비밀번호
DB_PASSWORD=your_db_password
# 데이터베이스 이름
DB_NAME=your_db_name
# 데이터베이스 문자셋, utf8mb4 권장, emoji 호환
DB_CHARSET=utf8mb4
# 데이터베이스 유형 postgresql 또는 mysql
DB_DIALECT=postgresql
# 데이터베이스는 초기화할 필요 없음, app.py 실행 시 자동 감지
# ====================== LLM 설정 ======================
# 각 부분 LLM이 사용하는 API를 변경할 수 있으며, OpenAI 요청 형식과 호환되면 됩니다
# 설정 파일 내부에 각 Agent의 권장 LLM이 있으며, 최초 배포 시 권장 설정을 먼저 참고하세요
# Insight Agent
INSIGHT_ENGINE_API_KEY=
INSIGHT_ENGINE_BASE_URL=
INSIGHT_ENGINE_MODEL_NAME=
# Media Agent
...
6. 시스템 시작
6.1 전체 시스템 시작(권장)
# 프로젝트 루트 디렉토리에서 conda 환경 활성화
conda activate your_conda_name
# 메인 앱 시작
python app.py
uv 버전 시작 명령
# 프로젝트 루트 디렉토리에서 uv 환경 활성화
.venv \S cripts \a ctivate
# 메인 앱 시작
python app.py
참고1: 한 번 실행이 종료된 후 streamlit app이 비정상 종료되어 여전히 포트를 점유할 수 있으며, 이때 포트를 점유한 프로세스를 검색하여 kill하면 됩니다
참고2: 데이터 크롤링은 별도 작업이 필요하며, 6.3 안내 참조
http://localhost:5000 에 접속하면 전체 시스템을 사용할 수 있습니다
6.2 특정 Agent 개별 시작
# QueryEngine 시작
streamlit run SingleEngineApp/query_engine_streamlit_app.py --server.port 8503
# MediaEngine 시작
streamlit run SingleEngineApp/media_engine_streamlit_app.py --server.port 8502
# InsightEngine 시작
streamlit run SingleEngineApp/insight_engine_streamlit_app.py --server.port 8501
6.3 크롤러 시스템 개별 사용
이 부분에는 자세한 설정 문서가 있습니다: MindSpider 사용 설명
MindSpider 실행 예시
# 크롤러 디렉토리 진입
cd MindSpider
# 프로젝트 초기화
python main.py --setup
# 토픽 추출 실행(핫 뉴스 및 키워드 가져오기)
python main.py --broad-topic
# 전체 크롤러 흐름 실행
python main.py --complete --date 2024-01-20
# 토픽 추출만 실행
python main.py --broad-topic --date 2024-01-20
# 심층 크롤링만 실행
python main.py --deep-sentiment --platforms xhs dy wb
6.4 명령줄 보고서 생성 도구
이 도구는 세 분석 엔진의 실행 단계를 건너뛰고 최신 로그 파일을 직접 읽어, 웹 인터페이스 없이 종합 보고서를 생성합니다(파일 증분 검증 단계도 생략). 기본적으로 PDF 이후 Markdown을 자동 생성합니다(파라미터로 끌 수 있음). 일반적으로 보고서 생성 결과가 만족스럽지 않아 빠르게 재시도해야 하는 시나리오, 또는 Report Engine 디버깅 시 사용됩니다.
# 기본 사용(파일명에서 주제 자동 추출)
python report_engine_only.py
# 보고서 주제 지정
python report_engine_only.py --query " 토목공학 산업 분석 "
# PDF 생성 건너뛰기(시스템이 지원하더라도)
python report_engine_only.py --skip-pdf
# Markdown 생성 건너뛰기
python report_engine_only.py --skip-markdown
# 상세 로그 표시
python report_engine_only.py --verbose
# 도움말 정보 보기
python report_engine_only.py --help
기능 설명:
의존성 자동 검사: 프로그램이 PDF 생성에 필요한 시스템 의존성을 자동으로 검사하며, 누락 시 설치 안내를 제공합니다
최신 파일 가져오기: 세 엔진 디렉토리(insight_engine_streamlit_reports, media_engine_streamlit_reports, query_engine_streamlit_reports)에서 최신 분석 보고서를 자동으로 가져옵니다
파일 확인: 선택된 모든 파일의 이름, 경로, 수정 시간을 표시하고 사용자 확인을 기다립니다(기본 입력 y 계속, n 입력 시 종료)
보고서 직접 생성: 파일 증가 검토 절차를 건너뛰고 Report Engine을 직접 호출하여 종합 보고서를 생성합니다
파일 자동 저장:
HTML 보고서는 final_reports/ 디렉토리에 저장
PDF 보고서(의존성이 있는 경우)는 final_reports/pdf/ 디렉토리에 저장
Markdown 보고서(--skip-markdown으로 끌 수 있음)는 final_reports/md/ 디렉토리에 저장
파일 명명 형식: final_report_{주제}_{타임스탬프}.html/pdf/md
주의 사항:
세 엔진 디렉토리 중 최소 하나에 .md 보고서 파일이 포함되어 있는지 확인하세요
명령줄 도구와 웹 인터페이스는 상호 독립적이며 서로 영향을 주지 않습니다
PDF 생성에는 시스템 의존성 설치가 필요하며, 위 "PDF 내보내기所需 시스템 의존성 설치" 부분 참조
최신 결과 빠른 재렌더링:
regenerate_latest_html.py / regenerate_latest_md.py: CHAPTER_OUTPUT_DIR의 최신 실행 챕터 JSON에서 Document IR을 재제본하고 HTML 또는 Mark…
No comments yet.
to comment.