GEOFlow: 지식베이스 기반으로 GEO 콘텐츠를 생성하고 여러 사이트에 분산하는 오픈소스 시스템

GEOFlow 소개

생성형 검색 엔진이 답변에 인용할 콘텐츠를 어떻게 준비할 것인가는, 기존 검색 엔진 최적화(SEO)와는 결이 다른 문제입니다. 단순히 페이지를 양산하는 대신, 신뢰할 수 있는 자료를 구조화해서 생성·검토·발행하고, 여러 사이트로 분산하면서 그 성과를 추적하는 운영 체계가 필요합니다. 이 과정을 도구별로 흩어 놓으면 자료와 발행, 분석이 따로 놀게 됩니다.

GEOFlow는 이 작업을 하나의 워크플로로 묶는 오픈소스 GEO(생성형 엔진 최적화, Generative Engine Optimization) 콘텐츠 엔지니어링 및 다중 사이트 분산 시스템입니다. 지식베이스와 소재 라이브러리, 프롬프트, AI 생성 작업, 검토·발행, 데이터 분석, 그리고 WordPress REST나 범용 HTTP API 같은 분산 채널을 하나의 운영 가능한 체인으로 연결합니다. PHP 8.2 이상과 Laravel로 작성되었고, PostgreSQL(pgvector)과 Redis를 사용하며 Docker Compose로 배포할 수 있습니다.

GEOFlow의 설계는 자동화보다 지식베이스의 품질을 앞에 둡니다. 저자는 "약한 지식베이스에 강한 자동화를 더하면 결국 노이즈만 양산된다" 며, GEOFlow는 거짓 정보나 대량 오염을 만드는 도구가 아니라 신뢰할 수 있는 콘텐츠를 생산·분산하기 위한 것이라고 분명히 밝힙니다. 본 게시물에서는 GEOFlow의 주요 기능과 RAG 설계, 시스템 구조, 설치 방법을 정리합니다.

GEOFlow로 할 수 있는 일

GEOFlow는 콘텐츠 생산부터 분산, 분석까지를 하나의 관리 화면에서 다룹니다. 주요 기능은 다음과 같습니다.

  • 다중 모델 생성: OpenAI 스타일 API와 Gemini 네이티브 엔드포인트를 함께 지원하고, chat과 embedding 모델, 제공자 URL 자동 적응, 스마트 장애 조치(failover), 재시도, 사용량 통계를 제공합니다.
  • 지식베이스 RAG: 문서를 업로드해 규칙 기반 청킹으로 나누고, embedding 모델을 설정하면 벡터로 저장한 뒤 글 생성 시점에 관련 자료를 다시 불러옵니다.
  • 소재와 프롬프트 체계: 제목 라이브러리, 키워드 라이브러리, 이미지 라이브러리, 작성자, 지식베이스, 본문 프롬프트를 한곳에서 관리합니다.
  • 작업 자동화: 생성 수량, 초안 풀, 검토 토글, 발행 주기, 큐, 재시도, 발행 범위 제어를 설정해 생성 파이프라인을 자동화합니다.
  • 다중 사이트 분산: GEOFlow Agent, WordPress REST, 범용 HTTP API 채널로 글을 내보내고, 채널별로 사전 구성된 PHP Agent 패키지(홈페이지, 상세 페이지, sitemap, llms.txt, Schema 포함)를 생성합니다.
  • 데이터 분석: 시스템 총괄, 단일·다중 사이트 운영, 접근 로그, 인기 콘텐츠, 그리고 AI 크롤러 식별과 추세 차트를 제공합니다.

발행 범위는 작업 단위로 정할 수 있어, 로컬과 채널에 동시에 발행하거나 특정 채널에만, 또는 로컬 사이트에만 발행하도록 구분됩니다. 로컬 전용 모드에서는 채널 선택이 비활성화되어 원격 분산 큐로 들어가지 않습니다.

GEOFlow의 지식베이스와 RAG

GEOFlow에서 콘텐츠 품질을 떠받치는 핵심은 지식베이스와 RAG 구성입니다. 문서를 올리면 구조화된 규칙 청킹(structured rule chunking), 자동 전략, 선택적인 LLM 시맨틱 계획 중에서 청킹 방식을 고를 수 있습니다.

여기서 주목할 만한 설계는 LLM 시맨틱 계획의 동작 방식입니다. GEOFlow는 LLM이 청크의 경계만 계획하고, 최종 청크는 원문에서 다시 안정적으로 재구성한다 고 설명합니다. 즉 모델은 어디서 끊을지를 제안하는 역할에 머무르고, 실제 텍스트는 원문에서 그대로 복원되므로, 생성 과정에서 원문이 변형되거나 누락될 위험을 줄입니다. embedding 모델을 설정해 두면 이렇게 만든 청크가 벡터로 저장되고, 글을 생성할 때 관련 자료가 검색되어 입력으로 들어갑니다.

이렇게 정비된 지식베이스와 제목·키워드·이미지·작성자 라이브러리가 작업의 입력 계층을 이룹니다. 저자가 권하는 작업 순서도 같은 맥락으로, 무거운 자동화를 켜기 전에 먼저 지식베이스를 충실히 갖추라는 것입니다.

GEOFlow의 시스템 아키텍처

GEOFlow는 Laravel을 기반으로 다섯 계층으로 구성됩니다. 웹·관리자 계층은 Laravel 라우팅과 Blade 기반 관리 화면, 전면 글 사이트, 데이터 분석, 분산 관리, 소재·작업 입구를 담당합니다. API·에이전트 계층은 로컬 API와 대상 사이트의 PHP Agent로, 분산 상태 점검과 글 수신, 원격 설정 동기화, 정적 파일 생성을 맡습니다. 스케줄러·큐·Reverb 계층은 Laravel 스케줄러로 작업을 입수하고 queue:work 또는 Horizon으로 생성·분산 작업을 소비하며, WebSocket이 필요할 때 Reverb를 켭니다.

도메인·잡 계층(app/Services, app/Jobs, app/Http/Controllers 등)은 AI 생성과 RAG, 발행, 분산, 로그 분석 규칙을 담고, 영속 계층은 PostgreSQL(pgvector 권장)과 Redis, 그리고 대상 사이트의 JSON·정적 파일로 데이터를 보관합니다. 전체 흐름은 모델·프롬프트·라이브러리 설정에서 시작해, 작업 생성과 큐 처리, 초안·검토·발행을 거쳐 로컬 SEO 페이지와 원격 채널 분산, 그리고 데이터 분석으로 이어집니다.

GEOFlow 설치 및 사용법

가장 빠른 방법은 Docker Compose로 띄우는 것입니다. 저장소를 받아 환경 파일을 준비한 뒤 빌드하고 실행합니다.

git clone https://github.com/yaojingang/GEOFlow.git
cd GEOFlow
cp .env.example .env
# .env 편집: DB, Redis, APP_URL, ADMIN_BASE_PATH 등 설정
docker compose build
docker compose up -d

기본 설정에서 사이트는 http://localhost:18080(호스트 포트는 APP_PORT, 기본값 18080)에서 열리고, 관리자 로그인은 http://localhost:18080/geo_admin/login(경로 접두사는 ADMIN_BASE_PATH, 기본값 geo_admin)입니다. docker-compose.ymlinit 서비스가 데이터베이스 준비 후 최초 마이그레이션과 시딩을 수행합니다. 운영 환경에서는 php artisan serve 대신 Nginx와 php-fpm을 쓰는 docker-compose.prod.yml 구성을 사용하도록 안내합니다.

GEOFlow의 라이선스

GEOFlow는 Apache License 2.0으로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용·수정·재배포할 수 있습니다. 저작권·라이선스 고지와 변경 고지를 유지하고, Apache-2.0의 특허·상표·면책 조항을 따르면 됩니다.

:github: GEOFlow 프로젝트 GitHub 저장소

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다!
텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. :smiley:

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: