- [Crawlee](https://github.com/apify/crawlee-python)를 기본 크롤러 및 작업 관리 프레임워크로 도입하여 페이지 획득 능력을 크게 향상시켰습니다. 이전에 획득할 수 없었던 (또는 코드가 깨진) 페이지를 현재는 잘 획득할 수 있습니다. 향후 획득이 잘 되지 않는 페이지가 있다면, [issue #136](https://github.com/TeamWiseFlow/wiseflow/issues/136)에 피드백을 주시기 바랍니다.
- 새로운 제품 위치에 따른 새로운 정보 추출 전략 — "크롤링과 조사 통합"을 도입하였습니다. 기사 상세 추출을 포기하고, 크롤링 과정에서 llm을 사용하여 사용자가 관심 있는 정보(infos)를 직접 추출하며, 추가로 크롤링할 가치가 있는 링크를 자동으로 판단합니다. **당신이 관심 있는 것이 당신이 필요한 것입니다.**
- 최신 버전(v0.23.4)의 Pocketbase에 적합하며, 폼 구성을 업데이트하였습니다. 또한 새로운 아키텍처는 GNE 등의 모듈이 더 이상 필요하지 않으며, requirement 종속 항목이 8개로 줄었습니다.
- 새로운 아키텍처의 배포 방식도 더욱 간편해졌으며, docker 모드는 코드 저장소 핫 업데이트를 지원합니다. 이는 향후 업그레이드 시 docker build를 다시 수행할 필요가 없음을 의미합니다.
그러나 우리는 일부 관심 있는 분들이 wiseflow의 기능 위치에 대해 일부 이해 오류가 있음을 알게 되었습니다. 아래 표는 전통적인 크롤러 도구, AI 검색, 지식 베이스(RAG) 프로젝트와의 비교를 통해 wiseflow 제품의 최신 위치에 대한 우리의 생각을 나타냅니다.
| **크롤러 도구** | 먼저 wiseflow는 크롤러 도구 기반 프로젝트입니다 (현재 버전 기준으로, 우리는 크롤러 프레임워크 Crawlee를 기반으로 합니다). 그러나 전통적인 크롤러 도구는 정보 추출 측면에서 인간의 개입이 필요하며, 명확한 Xpath 등을 제공해야 합니다. 이는 일반 사용자를 막을 뿐만 아니라 일반성이 전혀 없으며, 다른 웹사이트 (기존 웹사이트 업그레이드 포함)에 대해서는 인간이 다시 분석을 수행하고 추출 코드를 업데이트해야 합니다. wiseflow는 LLM을 사용하여 웹페이지의 자동 분석 및 추출 작업을 추구하며, 사용자는 프로그램에 그의 관심사만 알려주면 됩니다. 이 관점에서 wiseflow를 "자동으로 크롤러 도구를 사용할 수 있는 AI 에이전트"로 간단히 이해할 수 있습니다. |
| **AI 검색** | AI 검색의 주요 응용 시나리오는 **구체적인 문제의 즉각적인 질문 및 답변**입니다. 예: "XX 회사의 창립자는 누구인가", "xx 브랜드의 xx 제품은 어디서 구매할 수 있는가". 사용자는 **하나의 답변**을 원합니다. wiseflow의 주요 응용 시나리오는 **특정 측면의 정보 지속적 수집**입니다. 예: XX 회사의 관련 정보 추적, XX 브랜드의 시장 행동 지속 추적 등. 이러한 시나리오에서 사용자는 관심사 (특정 회사, 특정 브랜드) 및 신뢰할 수 있는 소스 (사이트 URL 등)를 제공할 수 있지만, 구체적인 검색 질문을 제시할 수 없습니다. 사용자는 **일련의 관련 정보**를 원합니다. |
| **지식 베이스 (RAG) 프로젝트** | 지식 베이스 (RAG) 프로젝트는 일반적으로 기존 정보를 기반으로 한 하류 작업을 기반으로 하며, 일반적으로 개인 지식 (예: 기업 내 운영 매뉴얼, 제품 매뉴얼, 정부 부서의 문서 등)을 대상으로 합니다. wiseflow는 현재 하류 작업을 통합하지 않으며, 인터넷상의 공개 정보를 대상으로 합니다. "에이전트"의 관점에서 볼 때, 둘은 서로 다른 목적으로 구축된 에이전트입니다. RAG 프로젝트는 "내부 지식 보조 에이전트"이며, wiseflow는 "외부 정보 수집 에이전트"입니다. |
처음 docker container를 실행할 때 프로그램이 오류를 보고할 수 있습니다. 이는 정상적인 현상입니다. 화면의 프롬프트에 따라 superuser 계정을 생성하세요 (반드시 이메일 주소를 사용하세요). 그런 다음 생성된 사용자 이름과 비밀번호를 .env 파일에 입력하고 container를 다시 시작하세요.
🌟 docker 솔루션은 기본적으로 task.py를 실행하며, 이는 주기적으로 크롤링-추출 작업을 실행합니다 (시작 시 즉시 한 번 실행된 후, 매 시간마다 한 번씩 실행됩니다).
### 3.2 python 환경에서 실행
✋ V0.3.5 버전의 아키텍처 및 종속성은 이전 버전과 크게 다릅니다. 반드시 코드를 다시 가져와 pb_data를 삭제 (또는 재구축)하세요.
모델의 매개변수 수가 많을수록 더 나은 성능을 의미하지만, 실제 테스트를 통해 **Qwen2.5-7b-Instruct 및 glm-4-9b-chat 모델을 사용하면 기본적인 효과를 얻을 수 있음**이 확인되었습니다. 그러나 비용, 속도 및 효과를 종합적으로 고려할 때, 저는 주 모델 **(PRIMARY_MODEL)로 Qwen2.5-14B-Instruct를 더 추천합니다**.
여기에서 siliconflow (규소 흐름)의 MaaS 서비스를 강력히 추천합니다. 여러 주요 오픈소스 모델의 서비스를 제공하며, 대량 서비스를 제공합니다. Qwen2.5-7b-Instruct 및 glm-4-9b-chat는 현재 무료 서비스를 제공합니다. (주 모델로 Qwen2.5-14B-Instruct를 사용하는 경우, 374개의 웹페이지를 크롤링하고 43개의 유효한 info를 추출하여 총 비용은 ¥3.07입니다).
wiseflow의 core 부분은 dashboard를 필요로 하지 않으며, 현재 제품은 dashboard를 통합하지 않았습니다. dashboard가 필요한 경우, [V0.2.1 버전](https://github.com/TeamWiseFlow/wiseflow/releases/tag/V0.2.1)을 다운로드하세요.
- crawlee-python (Python용 웹 스크래핑 및 브라우저 자동화 라이브러리로, 신뢰할 수 있는 크롤러를 구축합니다. BeautifulSoup, Playwright 및 원시 HTTP와 함께 작동합니다. headful 및 headless 모드 모두 지원. 프록시 회전 기능 포함.) https://github.com/apify/crawlee-python
- json_repair (유효하지 않은 JSON 문서 복구) https://github.com/josdejong/jsonrepair/tree/main
- python-pocketbase (pocketBase 클라이언트 SDK for python) https://github.com/vaphes/pocketbase
- SeeAct (모든 주어진 웹사이트에서 자율적으로 작업을 수행하는 일반 웹 에이전트 시스템, 특히 GPT-4Vision과 같은 대형 멀티모달 모델 (LMMs)에 중점을 둡니다.) https://github.com/OSU-NLP-Group/SeeAct
또한 [GNE](https://github.com/GeneralNewsExtractor/GeneralNewsExtractor), [AutoCrawler](https://github.com/kingname/AutoCrawler)에서 영감을 받았습니다.