Repository files navigation

FOWOCO AI

Python 3.11+FastAPILangGraphQdrantCLOVA OCRHWPX MCPDocker

FOWOCO AI는 E-9 외국인근로자를 고용한 사업장의 재계약·체류기간 연장 업무를 지원하는 FastAPI 기반 AI Runtime입니다. HR 요청을 분석하고, 필요한 정보를 식별하며, 안내문과 행정 문서 초안을 만듭니다.

AI의 결과는 업무 확정값이 아닙니다. 권한 확인, 공식 업무 상태, 파일 저장, 승인과 감사 이력은 FOWOCO Server가 관리하고 최종 판단은 HR 담당자가 수행합니다.

목차

시스템 구조

전체 시스템 흐름

Client 요청이 Server와 AI Runtime을 거쳐 HR 검토로 이어지는 FOWOCO 전체 시스템 흐름

Client는 업무 요청을 입력하고 Server는 권한과 업무 상태를 확인합니다. AI Runtime은 Server가 허용한 Context만 받아 분석 결과와 초안을 반환합니다. 이후 Server의 업무 게이트와 HR 검토를 통과해야 실제 업무에 반영됩니다.

AI 팀 Runtime 상세

FastAPI API, Intent PLAN, Renewal Supervisor, Language Assistant, CLOVA OCR, Document Engine, HWPX MCP로 구성된 AI Runtime

이 저장소는 FOWOCO AI 팀이 공동으로 관리하는 Runtime입니다. FastAPI가 요청 진입점을 제공하고, Intent·PLAN과 Renewal Supervisor가 필요한 작업을 선택합니다. 언어 지원, OCR, 문서 처리는 각각 독립된 도구 경계를 유지합니다.

문서 처리 경로는 다음 순서를 따릅니다.

Document Engine → HWPX MCP → Document Engine → Server·HR 검토

HWPX MCP는 안전한 양식 편집 결과를 Document Engine으로 돌려줍니다. Document Engine이 결과를 검증하고 문서 초안으로 구성한 뒤에야 Server·HR 검토 경계로 전달합니다.

AI Runtime이 하는 일

영역역할비고
Intent·PLANHR 지시에서 Intent와 Workflow 후보를 찾고 필요한 필드를 요청PLAN 결정은 ANALYZE에서 재사용
Renewal Supervisor누락 정보, 근로자 요청, OCR, 안내문, 문서 생성 경로를 선택기본은 규칙 기반 Supervisor
Language Assistant표준 한국어, 쉬운 한국어, 대상 언어 안내 초안을 생성·검증LLM과 Qdrant는 선택 Provider
CLOVA OCR여권·외국인등록증 OCR 결과를 정규화하고 검토 사유를 반환낮은 신뢰도는 HR 검토로 전환
Document EngineHWP/HWPX 검사, 템플릿 조회, 필드 편집, 문서 생성·변환원본과 생성 결과를 분리
HWPX MCPHWPX 필드 탐색, 승인 기반 편집, 시각 검증을 지원hwp-editor/에 별도 서버로 구성

책임 경계

경계책임
AIPrompt, 모델 라우팅, Intent·Agent 판단, OCR·언어·문서 도구 조합, 초안 생성
Server인증·tenant, Worker·Task·Case, 업무 상태, 승인, FileStorage, 감사 이력
KnowledgeIntent·Workflow·Slot의 canonical ID, 공식 근거, 평가 데이터
ClientHR·근로자 화면, 요청 입력, 결과 검토, 승인·반려 입력

AI는 운영 DB를 직접 수정하지 않습니다. 필요한 필드 키를 반환하면 Server가 권한과 allow-list를 검사한 뒤 필요한 값만 다시 전달합니다. Provider 실패, 낮은 신뢰도, 필수 정보 누락은 자동 승인이나 임시 발송 대신 검토가 필요한 상태로 반환합니다.

빠른 시작

준비물

  • Python 3.11 이상
  • uv

1. 로컬 Runtime 실행

Provider 없이 API와 기본 Runtime을 확인하는 가장 짧은 경로입니다.

uv sync --frozen --extra dev
FOWOCO_ENV_FILE=/dev/null uv run uvicorn app.main:app --reload --port 8000

2. 첫 실행 확인

curl http://localhost:8000/openapi.json

브라우저에서는 http://localhost:8000/docs의 Swagger UI를 사용할 수 있습니다.

3. 선택 Provider 연결

cp .env.example .env

.env의 예시 API Key와 Secret을 실제 개발용 값으로 교체한 뒤 Runtime을 다시 시작합니다. 실제 Secret은 Git에 커밋하지 않습니다.

Qdrant를 포함한 컨테이너 환경은 다음과 같이 실행합니다.

docker compose up --build

API 사용

PLAN 요청 예시

로컬에서 FOWOCO_INTERNAL_API_TOKEN을 설정하지 않은 경우 다음 요청으로 분석 계약을 확인할 수 있습니다.

curl --request POST http://localhost:8000/internal/v1/analyses \
--header 'Content-Type: application/json' \
--data '{ "requestId": "local-plan-001", "phase": "PLAN", "analysisInput": { "instruction": "김민수 근로자의 체류기간 연장 준비사항을 확인해 주세요", "workers": [] } }'

운영 환경에서 Internal API를 호출할 때는 Server와 공유한 Bearer Token이 필요합니다.

Authorization: Bearer <FOWOCO_INTERNAL_API_TOKEN>

주요 Endpoint

MethodPath역할
POST/internal/v1/analysesPLAN·ANALYZE 실행
GET/internal/v1/intent/statusIntent Provider 상태 확인
GET/internal/v1/intent/readinessIntent warmup·readiness 확인
POST/internal/v1/workflows/renewal/runRenewal Workflow 실행
POST/internal/v1/language-assistant구조화된 다국어 안내 초안 생성
POST/internal/v1/ocr/worker-documents/{worker_document_id}근로자 신분서류 OCR 실행
GET/api/v1/documents/capabilities문서 처리 기능 조회
GET/api/v1/documents/templates사용 가능한 문서 템플릿 조회
POST/api/v1/documents/inspectHWP/HWPX 구조 검사
POST/api/v1/documents/edit문서 필드 편집
POST/api/v1/documents/generate템플릿 기반 문서 초안 생성
POST/api/v1/documents/convert지원 형식 간 변환

요청·응답 전체 스키마와 오류 응답은 실행 중인 Swagger UI와 계약 문서를 기준으로 확인합니다.

환경 설정

기본 설정은 외부 Provider 없이도 애플리케이션이 시작되도록 구성되어 있습니다. 선택 기능을 활성화하려면 해당 환경변수와 실행 의존성을 함께 준비해야 합니다.

기능주요 환경변수미설정·비활성 상태
Internal API 인증FOWOCO_INTERNAL_API_TOKEN로컬에서는 인증 생략, OCR 활성화 시 필수
Language LLMFOWOCO_LLM_PROVIDER, FOWOCO_LLM_BASE_URL, FOWOCO_LLM_API_KEY, FOWOCO_LLM_MODELLanguage Assistant 호출 시 명시적 실패
Language RetrievalFOWOCO_QDRANT_URL, FOWOCO_QDRANT_API_KEYRetrieval 없이 degraded 경로 사용
Intent 모델FOWOCO_INTENT_MODEL_ENABLED, FOWOCO_INTENT_BERT_MODEL_DIR, FOWOCO_HF_TOKEN재갱신 Intent stub 사용
A.X 보완FOWOCO_INTENT_ENABLE_AX, FOWOCO_INTENT_AX_BASE_MODEL, FOWOCO_INTENT_AX_ADAPTER_PATHBERT·규칙 경로만 사용
SupervisorFOWOCO_SUPERVISOR_MODE기본값 rules
CLOVA OCRFOWOCO_CLOVA_OCR_ENABLED, FOWOCO_CLOVA_OCR_INVOKE_URL, FOWOCO_CLOVA_OCR_SECRETOCR API가 503 반환
문서 변환FOWOCO_HWP_TO_HWPX_ENABLED, FOWOCO_HWPX_TO_HWP_ENABLED, FOWOCO_HWPX_PDF_ENABLED활성화하지 않은 변환은 사용 불가

전체 변수, 기본값, opt-in 조건은 .env.exampleSettings을 함께 확인합니다.

저장소 구조

app/
├── main.py FastAPI 애플리케이션 진입점
├── api/ HTTP Route, Schema, Internal 인증
├── agents/
│ ├── intent/ Intent 분류와 Guardrail
│ ├── language/ 다국어 안내 생성·검증
│ └── workflow_graph/ Renewal Supervisor와 Workflow Graph
├── ocr/ CLOVA OCR Adapter와 결과 정규화
├── documents/ HWP/HWPX 검사·편집·생성·변환
├── db/ 로컬·테스트용 인메모리 Adapter
└── core/ 환경 설정과 공통 기반
hwp-editor/ HWPX Editor MCP Server
docs/ 계약·운영·평가 문서
scripts/ 모델·검색 데이터·평가 도구
tests/ 단위·계약·통합 테스트

app/db는 운영 업무 데이터의 기준 저장소가 아닙니다. 운영 Worker·Task·Case와 승인 상태는 FOWOCO Server가 소유합니다.

개발과 검증

기본 검사

uv run ruff check app tests
PYTHONPATH=. FOWOCO_ENV_FILE=/dev/null uv run pytest \
-m "not qdrant_integration and not language_models and not rhwp_integration and not windows_ocr"

선택 통합 검사

Marker필요한 환경
qdrant_integrationQdrant와 language-retrieval 의존성
language_models고정된 언어 모델 Cache
rhwp_integrationrhwp 실행 파일과 문서 변환 환경
windows_ocrWindows PowerShell OCR Smoke 환경

기능을 변경할 때는 정상 결과뿐 아니라 Provider 비활성, Timeout, 낮은 신뢰도, 검토 필요 응답도 함께 검증합니다.

관련 문서

찾는 내용문서
Server 연결·인증·식별자AI Runtime Handshake
PLAN·ANALYZE 계약Analyses Contract
Renewal Workflow 계약Workflows Contract
Slot 재조회·재호출Slot Refill Contract
Language Assistant 운영Language Assistant Operations
Language 품질 기준Language Assistant Baseline
CLOVA OCR 연동CLOVA OCR Integration
HWP/HWPX 처리Document Engine
HWPX MCP 사용HWPX Editor MCP

팀 기여 원칙

이 저장소의 코드, 다이어그램, 문서는 FOWOCO AI 팀의 공동 자산입니다. 변경할 때는 개인별 작업 소개보다 Runtime 계약과 팀이 재현할 수 있는 검증 결과를 우선합니다.

  • API Schema를 바꾸면 관련 계약 문서와 테스트를 함께 수정합니다.
  • Provider 기능은 활성 조건, 실패 방식, 검토 경로를 문서화합니다.
  • 자동 승인·자동 발송·운영 DB 직접 수정 경계를 확장하지 않습니다.
  • Secret, 실제 개인정보, 내부 파일 경로를 커밋하지 않습니다.
  • README에는 현재 코드로 재현 가능한 실행 방법만 유지합니다.

About

AI Agent Workflow : Intent, Slot Filling, Ambiguity, Guardrail, Language, Response Agent

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

FOWOCO AI

Python 3.11+FastAPILangGraphQdrantCLOVA OCRHWPX MCPDocker

FOWOCO AI는 E-9 외국인근로자를 고용한 사업장의 재계약·체류기간 연장 업무를 지원하는 FastAPI 기반 AI Runtime입니다. HR 요청을 분석하고, 필요한 정보를 식별하며, 안내문과 행정 문서 초안을 만듭니다.

AI의 결과는 업무 확정값이 아닙니다. 권한 확인, 공식 업무 상태, 파일 저장, 승인과 감사 이력은 FOWOCO Server가 관리하고 최종 판단은 HR 담당자가 수행합니다.

목차

시스템 구조

전체 시스템 흐름

Client 요청이 Server와 AI Runtime을 거쳐 HR 검토로 이어지는 FOWOCO 전체 시스템 흐름

Client는 업무 요청을 입력하고 Server는 권한과 업무 상태를 확인합니다. AI Runtime은 Server가 허용한 Context만 받아 분석 결과와 초안을 반환합니다. 이후 Server의 업무 게이트와 HR 검토를 통과해야 실제 업무에 반영됩니다.

AI 팀 Runtime 상세

FastAPI API, Intent PLAN, Renewal Supervisor, Language Assistant, CLOVA OCR, Document Engine, HWPX MCP로 구성된 AI Runtime

이 저장소는 FOWOCO AI 팀이 공동으로 관리하는 Runtime입니다. FastAPI가 요청 진입점을 제공하고, Intent·PLAN과 Renewal Supervisor가 필요한 작업을 선택합니다. 언어 지원, OCR, 문서 처리는 각각 독립된 도구 경계를 유지합니다.

문서 처리 경로는 다음 순서를 따릅니다.

Document Engine → HWPX MCP → Document Engine → Server·HR 검토

HWPX MCP는 안전한 양식 편집 결과를 Document Engine으로 돌려줍니다. Document Engine이 결과를 검증하고 문서 초안으로 구성한 뒤에야 Server·HR 검토 경계로 전달합니다.

AI Runtime이 하는 일

영역역할비고
Intent·PLANHR 지시에서 Intent와 Workflow 후보를 찾고 필요한 필드를 요청PLAN 결정은 ANALYZE에서 재사용
Renewal Supervisor누락 정보, 근로자 요청, OCR, 안내문, 문서 생성 경로를 선택기본은 규칙 기반 Supervisor
Language Assistant표준 한국어, 쉬운 한국어, 대상 언어 안내 초안을 생성·검증LLM과 Qdrant는 선택 Provider
CLOVA OCR여권·외국인등록증 OCR 결과를 정규화하고 검토 사유를 반환낮은 신뢰도는 HR 검토로 전환
Document EngineHWP/HWPX 검사, 템플릿 조회, 필드 편집, 문서 생성·변환원본과 생성 결과를 분리
HWPX MCPHWPX 필드 탐색, 승인 기반 편집, 시각 검증을 지원hwp-editor/에 별도 서버로 구성

책임 경계

경계책임
AIPrompt, 모델 라우팅, Intent·Agent 판단, OCR·언어·문서 도구 조합, 초안 생성
Server인증·tenant, Worker·Task·Case, 업무 상태, 승인, FileStorage, 감사 이력
KnowledgeIntent·Workflow·Slot의 canonical ID, 공식 근거, 평가 데이터
ClientHR·근로자 화면, 요청 입력, 결과 검토, 승인·반려 입력

AI는 운영 DB를 직접 수정하지 않습니다. 필요한 필드 키를 반환하면 Server가 권한과 allow-list를 검사한 뒤 필요한 값만 다시 전달합니다. Provider 실패, 낮은 신뢰도, 필수 정보 누락은 자동 승인이나 임시 발송 대신 검토가 필요한 상태로 반환합니다.

빠른 시작

준비물

  • Python 3.11 이상
  • uv

1. 로컬 Runtime 실행

Provider 없이 API와 기본 Runtime을 확인하는 가장 짧은 경로입니다.

uv sync --frozen --extra dev
FOWOCO_ENV_FILE=/dev/null uv run uvicorn app.main:app --reload --port 8000

2. 첫 실행 확인

curl http://localhost:8000/openapi.json

브라우저에서는 http://localhost:8000/docs의 Swagger UI를 사용할 수 있습니다.

3. 선택 Provider 연결

cp .env.example .env

.env의 예시 API Key와 Secret을 실제 개발용 값으로 교체한 뒤 Runtime을 다시 시작합니다. 실제 Secret은 Git에 커밋하지 않습니다.

Qdrant를 포함한 컨테이너 환경은 다음과 같이 실행합니다.

docker compose up --build

API 사용

PLAN 요청 예시

로컬에서 FOWOCO_INTERNAL_API_TOKEN을 설정하지 않은 경우 다음 요청으로 분석 계약을 확인할 수 있습니다.

curl --request POST http://localhost:8000/internal/v1/analyses \
--header 'Content-Type: application/json' \
--data '{ "requestId": "local-plan-001", "phase": "PLAN", "analysisInput": { "instruction": "김민수 근로자의 체류기간 연장 준비사항을 확인해 주세요", "workers": [] } }'

운영 환경에서 Internal API를 호출할 때는 Server와 공유한 Bearer Token이 필요합니다.

Authorization: Bearer <FOWOCO_INTERNAL_API_TOKEN>

주요 Endpoint

MethodPath역할
POST/internal/v1/analysesPLAN·ANALYZE 실행
GET/internal/v1/intent/statusIntent Provider 상태 확인
GET/internal/v1/intent/readinessIntent warmup·readiness 확인
POST/internal/v1/workflows/renewal/runRenewal Workflow 실행
POST/internal/v1/language-assistant구조화된 다국어 안내 초안 생성
POST/internal/v1/ocr/worker-documents/{worker_document_id}근로자 신분서류 OCR 실행
GET/api/v1/documents/capabilities문서 처리 기능 조회
GET/api/v1/documents/templates사용 가능한 문서 템플릿 조회
POST/api/v1/documents/inspectHWP/HWPX 구조 검사
POST/api/v1/documents/edit문서 필드 편집
POST/api/v1/documents/generate템플릿 기반 문서 초안 생성
POST/api/v1/documents/convert지원 형식 간 변환

요청·응답 전체 스키마와 오류 응답은 실행 중인 Swagger UI와 계약 문서를 기준으로 확인합니다.

환경 설정

기본 설정은 외부 Provider 없이도 애플리케이션이 시작되도록 구성되어 있습니다. 선택 기능을 활성화하려면 해당 환경변수와 실행 의존성을 함께 준비해야 합니다.

기능주요 환경변수미설정·비활성 상태
Internal API 인증FOWOCO_INTERNAL_API_TOKEN로컬에서는 인증 생략, OCR 활성화 시 필수
Language LLMFOWOCO_LLM_PROVIDER, FOWOCO_LLM_BASE_URL, FOWOCO_LLM_API_KEY, FOWOCO_LLM_MODELLanguage Assistant 호출 시 명시적 실패
Language RetrievalFOWOCO_QDRANT_URL, FOWOCO_QDRANT_API_KEYRetrieval 없이 degraded 경로 사용
Intent 모델FOWOCO_INTENT_MODEL_ENABLED, FOWOCO_INTENT_BERT_MODEL_DIR, FOWOCO_HF_TOKEN재갱신 Intent stub 사용
A.X 보완FOWOCO_INTENT_ENABLE_AX, FOWOCO_INTENT_AX_BASE_MODEL, FOWOCO_INTENT_AX_ADAPTER_PATHBERT·규칙 경로만 사용
SupervisorFOWOCO_SUPERVISOR_MODE기본값 rules
CLOVA OCRFOWOCO_CLOVA_OCR_ENABLED, FOWOCO_CLOVA_OCR_INVOKE_URL, FOWOCO_CLOVA_OCR_SECRETOCR API가 503 반환
문서 변환FOWOCO_HWP_TO_HWPX_ENABLED, FOWOCO_HWPX_TO_HWP_ENABLED, FOWOCO_HWPX_PDF_ENABLED활성화하지 않은 변환은 사용 불가

전체 변수, 기본값, opt-in 조건은 .env.exampleSettings을 함께 확인합니다.

저장소 구조

app/
├── main.py FastAPI 애플리케이션 진입점
├── api/ HTTP Route, Schema, Internal 인증
├── agents/
│ ├── intent/ Intent 분류와 Guardrail
│ ├── language/ 다국어 안내 생성·검증
│ └── workflow_graph/ Renewal Supervisor와 Workflow Graph
├── ocr/ CLOVA OCR Adapter와 결과 정규화
├── documents/ HWP/HWPX 검사·편집·생성·변환
├── db/ 로컬·테스트용 인메모리 Adapter
└── core/ 환경 설정과 공통 기반
hwp-editor/ HWPX Editor MCP Server
docs/ 계약·운영·평가 문서
scripts/ 모델·검색 데이터·평가 도구
tests/ 단위·계약·통합 테스트

app/db는 운영 업무 데이터의 기준 저장소가 아닙니다. 운영 Worker·Task·Case와 승인 상태는 FOWOCO Server가 소유합니다.

개발과 검증

기본 검사

uv run ruff check app tests
PYTHONPATH=. FOWOCO_ENV_FILE=/dev/null uv run pytest \
-m "not qdrant_integration and not language_models and not rhwp_integration and not windows_ocr"

선택 통합 검사

Marker필요한 환경
qdrant_integrationQdrant와 language-retrieval 의존성
language_models고정된 언어 모델 Cache
rhwp_integrationrhwp 실행 파일과 문서 변환 환경
windows_ocrWindows PowerShell OCR Smoke 환경

기능을 변경할 때는 정상 결과뿐 아니라 Provider 비활성, Timeout, 낮은 신뢰도, 검토 필요 응답도 함께 검증합니다.

관련 문서

찾는 내용문서
Server 연결·인증·식별자AI Runtime Handshake
PLAN·ANALYZE 계약Analyses Contract
Renewal Workflow 계약Workflows Contract
Slot 재조회·재호출Slot Refill Contract
Language Assistant 운영Language Assistant Operations
Language 품질 기준Language Assistant Baseline
CLOVA OCR 연동CLOVA OCR Integration
HWP/HWPX 처리Document Engine
HWPX MCP 사용HWPX Editor MCP

팀 기여 원칙

이 저장소의 코드, 다이어그램, 문서는 FOWOCO AI 팀의 공동 자산입니다. 변경할 때는 개인별 작업 소개보다 Runtime 계약과 팀이 재현할 수 있는 검증 결과를 우선합니다.

  • API Schema를 바꾸면 관련 계약 문서와 테스트를 함께 수정합니다.
  • Provider 기능은 활성 조건, 실패 방식, 검토 경로를 문서화합니다.
  • 자동 승인·자동 발송·운영 DB 직접 수정 경계를 확장하지 않습니다.
  • Secret, 실제 개인정보, 내부 파일 경로를 커밋하지 않습니다.
  • README에는 현재 코드로 재현 가능한 실행 방법만 유지합니다.

About

AI Agent Workflow : Intent, Slot Filling, Ambiguity, Guardrail, Language, Response Agent

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

FOWOCO AI

Python 3.11+FastAPILangGraphQdrantCLOVA OCRHWPX MCPDocker

FOWOCO AI는 E-9 외국인근로자를 고용한 사업장의 재계약·체류기간 연장 업무를 지원하는 FastAPI 기반 AI Runtime입니다. HR 요청을 분석하고, 필요한 정보를 식별하며, 안내문과 행정 문서 초안을 만듭니다.

AI의 결과는 업무 확정값이 아닙니다. 권한 확인, 공식 업무 상태, 파일 저장, 승인과 감사 이력은 FOWOCO Server가 관리하고 최종 판단은 HR 담당자가 수행합니다.

목차

시스템 구조

전체 시스템 흐름

Client 요청이 Server와 AI Runtime을 거쳐 HR 검토로 이어지는 FOWOCO 전체 시스템 흐름

Client는 업무 요청을 입력하고 Server는 권한과 업무 상태를 확인합니다. AI Runtime은 Server가 허용한 Context만 받아 분석 결과와 초안을 반환합니다. 이후 Server의 업무 게이트와 HR 검토를 통과해야 실제 업무에 반영됩니다.

AI 팀 Runtime 상세

FastAPI API, Intent PLAN, Renewal Supervisor, Language Assistant, CLOVA OCR, Document Engine, HWPX MCP로 구성된 AI Runtime

이 저장소는 FOWOCO AI 팀이 공동으로 관리하는 Runtime입니다. FastAPI가 요청 진입점을 제공하고, Intent·PLAN과 Renewal Supervisor가 필요한 작업을 선택합니다. 언어 지원, OCR, 문서 처리는 각각 독립된 도구 경계를 유지합니다.

문서 처리 경로는 다음 순서를 따릅니다.

Document Engine → HWPX MCP → Document Engine → Server·HR 검토

HWPX MCP는 안전한 양식 편집 결과를 Document Engine으로 돌려줍니다. Document Engine이 결과를 검증하고 문서 초안으로 구성한 뒤에야 Server·HR 검토 경계로 전달합니다.

AI Runtime이 하는 일

영역역할비고
Intent·PLANHR 지시에서 Intent와 Workflow 후보를 찾고 필요한 필드를 요청PLAN 결정은 ANALYZE에서 재사용
Renewal Supervisor누락 정보, 근로자 요청, OCR, 안내문, 문서 생성 경로를 선택기본은 규칙 기반 Supervisor
Language Assistant표준 한국어, 쉬운 한국어, 대상 언어 안내 초안을 생성·검증LLM과 Qdrant는 선택 Provider
CLOVA OCR여권·외국인등록증 OCR 결과를 정규화하고 검토 사유를 반환낮은 신뢰도는 HR 검토로 전환
Document EngineHWP/HWPX 검사, 템플릿 조회, 필드 편집, 문서 생성·변환원본과 생성 결과를 분리
HWPX MCPHWPX 필드 탐색, 승인 기반 편집, 시각 검증을 지원hwp-editor/에 별도 서버로 구성

책임 경계

경계책임
AIPrompt, 모델 라우팅, Intent·Agent 판단, OCR·언어·문서 도구 조합, 초안 생성
Server인증·tenant, Worker·Task·Case, 업무 상태, 승인, FileStorage, 감사 이력
KnowledgeIntent·Workflow·Slot의 canonical ID, 공식 근거, 평가 데이터
ClientHR·근로자 화면, 요청 입력, 결과 검토, 승인·반려 입력

AI는 운영 DB를 직접 수정하지 않습니다. 필요한 필드 키를 반환하면 Server가 권한과 allow-list를 검사한 뒤 필요한 값만 다시 전달합니다. Provider 실패, 낮은 신뢰도, 필수 정보 누락은 자동 승인이나 임시 발송 대신 검토가 필요한 상태로 반환합니다.

빠른 시작

준비물

  • Python 3.11 이상
  • uv

1. 로컬 Runtime 실행

Provider 없이 API와 기본 Runtime을 확인하는 가장 짧은 경로입니다.

uv sync --frozen --extra dev
FOWOCO_ENV_FILE=/dev/null uv run uvicorn app.main:app --reload --port 8000

2. 첫 실행 확인

curl http://localhost:8000/openapi.json

브라우저에서는 http://localhost:8000/docs의 Swagger UI를 사용할 수 있습니다.

3. 선택 Provider 연결

cp .env.example .env

.env의 예시 API Key와 Secret을 실제 개발용 값으로 교체한 뒤 Runtime을 다시 시작합니다. 실제 Secret은 Git에 커밋하지 않습니다.

Qdrant를 포함한 컨테이너 환경은 다음과 같이 실행합니다.

docker compose up --build

API 사용

PLAN 요청 예시

로컬에서 FOWOCO_INTERNAL_API_TOKEN을 설정하지 않은 경우 다음 요청으로 분석 계약을 확인할 수 있습니다.

curl --request POST http://localhost:8000/internal/v1/analyses \
--header 'Content-Type: application/json' \
--data '{ "requestId": "local-plan-001", "phase": "PLAN", "analysisInput": { "instruction": "김민수 근로자의 체류기간 연장 준비사항을 확인해 주세요", "workers": [] } }'

운영 환경에서 Internal API를 호출할 때는 Server와 공유한 Bearer Token이 필요합니다.

Authorization: Bearer <FOWOCO_INTERNAL_API_TOKEN>

주요 Endpoint

MethodPath역할
POST/internal/v1/analysesPLAN·ANALYZE 실행
GET/internal/v1/intent/statusIntent Provider 상태 확인
GET/internal/v1/intent/readinessIntent warmup·readiness 확인
POST/internal/v1/workflows/renewal/runRenewal Workflow 실행
POST/internal/v1/language-assistant구조화된 다국어 안내 초안 생성
POST/internal/v1/ocr/worker-documents/{worker_document_id}근로자 신분서류 OCR 실행
GET/api/v1/documents/capabilities문서 처리 기능 조회
GET/api/v1/documents/templates사용 가능한 문서 템플릿 조회
POST/api/v1/documents/inspectHWP/HWPX 구조 검사
POST/api/v1/documents/edit문서 필드 편집
POST/api/v1/documents/generate템플릿 기반 문서 초안 생성
POST/api/v1/documents/convert지원 형식 간 변환

요청·응답 전체 스키마와 오류 응답은 실행 중인 Swagger UI와 계약 문서를 기준으로 확인합니다.

환경 설정

기본 설정은 외부 Provider 없이도 애플리케이션이 시작되도록 구성되어 있습니다. 선택 기능을 활성화하려면 해당 환경변수와 실행 의존성을 함께 준비해야 합니다.

기능주요 환경변수미설정·비활성 상태
Internal API 인증FOWOCO_INTERNAL_API_TOKEN로컬에서는 인증 생략, OCR 활성화 시 필수
Language LLMFOWOCO_LLM_PROVIDER, FOWOCO_LLM_BASE_URL, FOWOCO_LLM_API_KEY, FOWOCO_LLM_MODELLanguage Assistant 호출 시 명시적 실패
Language RetrievalFOWOCO_QDRANT_URL, FOWOCO_QDRANT_API_KEYRetrieval 없이 degraded 경로 사용
Intent 모델FOWOCO_INTENT_MODEL_ENABLED, FOWOCO_INTENT_BERT_MODEL_DIR, FOWOCO_HF_TOKEN재갱신 Intent stub 사용
A.X 보완FOWOCO_INTENT_ENABLE_AX, FOWOCO_INTENT_AX_BASE_MODEL, FOWOCO_INTENT_AX_ADAPTER_PATHBERT·규칙 경로만 사용
SupervisorFOWOCO_SUPERVISOR_MODE기본값 rules
CLOVA OCRFOWOCO_CLOVA_OCR_ENABLED, FOWOCO_CLOVA_OCR_INVOKE_URL, FOWOCO_CLOVA_OCR_SECRETOCR API가 503 반환
문서 변환FOWOCO_HWP_TO_HWPX_ENABLED, FOWOCO_HWPX_TO_HWP_ENABLED, FOWOCO_HWPX_PDF_ENABLED활성화하지 않은 변환은 사용 불가

전체 변수, 기본값, opt-in 조건은 .env.exampleSettings을 함께 확인합니다.

저장소 구조

app/
├── main.py FastAPI 애플리케이션 진입점
├── api/ HTTP Route, Schema, Internal 인증
├── agents/
│ ├── intent/ Intent 분류와 Guardrail
│ ├── language/ 다국어 안내 생성·검증
│ └── workflow_graph/ Renewal Supervisor와 Workflow Graph
├── ocr/ CLOVA OCR Adapter와 결과 정규화
├── documents/ HWP/HWPX 검사·편집·생성·변환
├── db/ 로컬·테스트용 인메모리 Adapter
└── core/ 환경 설정과 공통 기반
hwp-editor/ HWPX Editor MCP Server
docs/ 계약·운영·평가 문서
scripts/ 모델·검색 데이터·평가 도구
tests/ 단위·계약·통합 테스트

app/db는 운영 업무 데이터의 기준 저장소가 아닙니다. 운영 Worker·Task·Case와 승인 상태는 FOWOCO Server가 소유합니다.

개발과 검증

기본 검사

uv run ruff check app tests
PYTHONPATH=. FOWOCO_ENV_FILE=/dev/null uv run pytest \
-m "not qdrant_integration and not language_models and not rhwp_integration and not windows_ocr"

선택 통합 검사

Marker필요한 환경
qdrant_integrationQdrant와 language-retrieval 의존성
language_models고정된 언어 모델 Cache
rhwp_integrationrhwp 실행 파일과 문서 변환 환경
windows_ocrWindows PowerShell OCR Smoke 환경

기능을 변경할 때는 정상 결과뿐 아니라 Provider 비활성, Timeout, 낮은 신뢰도, 검토 필요 응답도 함께 검증합니다.

관련 문서

찾는 내용문서
Server 연결·인증·식별자AI Runtime Handshake
PLAN·ANALYZE 계약Analyses Contract
Renewal Workflow 계약Workflows Contract
Slot 재조회·재호출Slot Refill Contract
Language Assistant 운영Language Assistant Operations
Language 품질 기준Language Assistant Baseline
CLOVA OCR 연동CLOVA OCR Integration
HWP/HWPX 처리Document Engine
HWPX MCP 사용HWPX Editor MCP

팀 기여 원칙

이 저장소의 코드, 다이어그램, 문서는 FOWOCO AI 팀의 공동 자산입니다. 변경할 때는 개인별 작업 소개보다 Runtime 계약과 팀이 재현할 수 있는 검증 결과를 우선합니다.

  • API Schema를 바꾸면 관련 계약 문서와 테스트를 함께 수정합니다.
  • Provider 기능은 활성 조건, 실패 방식, 검토 경로를 문서화합니다.
  • 자동 승인·자동 발송·운영 DB 직접 수정 경계를 확장하지 않습니다.
  • Secret, 실제 개인정보, 내부 파일 경로를 커밋하지 않습니다.
  • README에는 현재 코드로 재현 가능한 실행 방법만 유지합니다.

About

AI Agent Workflow : Intent, Slot Filling, Ambiguity, Guardrail, Language, Response Agent

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

FOWOCO AI

Python 3.11+FastAPILangGraphQdrantCLOVA OCRHWPX MCPDocker

FOWOCO AI는 E-9 외국인근로자를 고용한 사업장의 재계약·체류기간 연장 업무를 지원하는 FastAPI 기반 AI Runtime입니다. HR 요청을 분석하고, 필요한 정보를 식별하며, 안내문과 행정 문서 초안을 만듭니다.

AI의 결과는 업무 확정값이 아닙니다. 권한 확인, 공식 업무 상태, 파일 저장, 승인과 감사 이력은 FOWOCO Server가 관리하고 최종 판단은 HR 담당자가 수행합니다.

목차

시스템 구조

전체 시스템 흐름

Client 요청이 Server와 AI Runtime을 거쳐 HR 검토로 이어지는 FOWOCO 전체 시스템 흐름

Client는 업무 요청을 입력하고 Server는 권한과 업무 상태를 확인합니다. AI Runtime은 Server가 허용한 Context만 받아 분석 결과와 초안을 반환합니다. 이후 Server의 업무 게이트와 HR 검토를 통과해야 실제 업무에 반영됩니다.

AI 팀 Runtime 상세

FastAPI API, Intent PLAN, Renewal Supervisor, Language Assistant, CLOVA OCR, Document Engine, HWPX MCP로 구성된 AI Runtime

이 저장소는 FOWOCO AI 팀이 공동으로 관리하는 Runtime입니다. FastAPI가 요청 진입점을 제공하고, Intent·PLAN과 Renewal Supervisor가 필요한 작업을 선택합니다. 언어 지원, OCR, 문서 처리는 각각 독립된 도구 경계를 유지합니다.

문서 처리 경로는 다음 순서를 따릅니다.

Document Engine → HWPX MCP → Document Engine → Server·HR 검토

HWPX MCP는 안전한 양식 편집 결과를 Document Engine으로 돌려줍니다. Document Engine이 결과를 검증하고 문서 초안으로 구성한 뒤에야 Server·HR 검토 경계로 전달합니다.

AI Runtime이 하는 일

영역역할비고
Intent·PLANHR 지시에서 Intent와 Workflow 후보를 찾고 필요한 필드를 요청PLAN 결정은 ANALYZE에서 재사용
Renewal Supervisor누락 정보, 근로자 요청, OCR, 안내문, 문서 생성 경로를 선택기본은 규칙 기반 Supervisor
Language Assistant표준 한국어, 쉬운 한국어, 대상 언어 안내 초안을 생성·검증LLM과 Qdrant는 선택 Provider
CLOVA OCR여권·외국인등록증 OCR 결과를 정규화하고 검토 사유를 반환낮은 신뢰도는 HR 검토로 전환
Document EngineHWP/HWPX 검사, 템플릿 조회, 필드 편집, 문서 생성·변환원본과 생성 결과를 분리
HWPX MCPHWPX 필드 탐색, 승인 기반 편집, 시각 검증을 지원hwp-editor/에 별도 서버로 구성

책임 경계

경계책임
AIPrompt, 모델 라우팅, Intent·Agent 판단, OCR·언어·문서 도구 조합, 초안 생성
Server인증·tenant, Worker·Task·Case, 업무 상태, 승인, FileStorage, 감사 이력
KnowledgeIntent·Workflow·Slot의 canonical ID, 공식 근거, 평가 데이터
ClientHR·근로자 화면, 요청 입력, 결과 검토, 승인·반려 입력

AI는 운영 DB를 직접 수정하지 않습니다. 필요한 필드 키를 반환하면 Server가 권한과 allow-list를 검사한 뒤 필요한 값만 다시 전달합니다. Provider 실패, 낮은 신뢰도, 필수 정보 누락은 자동 승인이나 임시 발송 대신 검토가 필요한 상태로 반환합니다.

빠른 시작

준비물

  • Python 3.11 이상
  • uv

1. 로컬 Runtime 실행

Provider 없이 API와 기본 Runtime을 확인하는 가장 짧은 경로입니다.

uv sync --frozen --extra dev
FOWOCO_ENV_FILE=/dev/null uv run uvicorn app.main:app --reload --port 8000

2. 첫 실행 확인

curl http://localhost:8000/openapi.json

브라우저에서는 http://localhost:8000/docs의 Swagger UI를 사용할 수 있습니다.

3. 선택 Provider 연결

cp .env.example .env

.env의 예시 API Key와 Secret을 실제 개발용 값으로 교체한 뒤 Runtime을 다시 시작합니다. 실제 Secret은 Git에 커밋하지 않습니다.

Qdrant를 포함한 컨테이너 환경은 다음과 같이 실행합니다.

docker compose up --build

API 사용

PLAN 요청 예시

로컬에서 FOWOCO_INTERNAL_API_TOKEN을 설정하지 않은 경우 다음 요청으로 분석 계약을 확인할 수 있습니다.

curl --request POST http://localhost:8000/internal/v1/analyses \
--header 'Content-Type: application/json' \
--data '{ "requestId": "local-plan-001", "phase": "PLAN", "analysisInput": { "instruction": "김민수 근로자의 체류기간 연장 준비사항을 확인해 주세요", "workers": [] } }'

운영 환경에서 Internal API를 호출할 때는 Server와 공유한 Bearer Token이 필요합니다.

Authorization: Bearer <FOWOCO_INTERNAL_API_TOKEN>

주요 Endpoint

MethodPath역할
POST/internal/v1/analysesPLAN·ANALYZE 실행
GET/internal/v1/intent/statusIntent Provider 상태 확인
GET/internal/v1/intent/readinessIntent warmup·readiness 확인
POST/internal/v1/workflows/renewal/runRenewal Workflow 실행
POST/internal/v1/language-assistant구조화된 다국어 안내 초안 생성
POST/internal/v1/ocr/worker-documents/{worker_document_id}근로자 신분서류 OCR 실행
GET/api/v1/documents/capabilities문서 처리 기능 조회
GET/api/v1/documents/templates사용 가능한 문서 템플릿 조회
POST/api/v1/documents/inspectHWP/HWPX 구조 검사
POST/api/v1/documents/edit문서 필드 편집
POST/api/v1/documents/generate템플릿 기반 문서 초안 생성
POST/api/v1/documents/convert지원 형식 간 변환

요청·응답 전체 스키마와 오류 응답은 실행 중인 Swagger UI와 계약 문서를 기준으로 확인합니다.

환경 설정

기본 설정은 외부 Provider 없이도 애플리케이션이 시작되도록 구성되어 있습니다. 선택 기능을 활성화하려면 해당 환경변수와 실행 의존성을 함께 준비해야 합니다.

기능주요 환경변수미설정·비활성 상태
Internal API 인증FOWOCO_INTERNAL_API_TOKEN로컬에서는 인증 생략, OCR 활성화 시 필수
Language LLMFOWOCO_LLM_PROVIDER, FOWOCO_LLM_BASE_URL, FOWOCO_LLM_API_KEY, FOWOCO_LLM_MODELLanguage Assistant 호출 시 명시적 실패
Language RetrievalFOWOCO_QDRANT_URL, FOWOCO_QDRANT_API_KEYRetrieval 없이 degraded 경로 사용
Intent 모델FOWOCO_INTENT_MODEL_ENABLED, FOWOCO_INTENT_BERT_MODEL_DIR, FOWOCO_HF_TOKEN재갱신 Intent stub 사용
A.X 보완FOWOCO_INTENT_ENABLE_AX, FOWOCO_INTENT_AX_BASE_MODEL, FOWOCO_INTENT_AX_ADAPTER_PATHBERT·규칙 경로만 사용
SupervisorFOWOCO_SUPERVISOR_MODE기본값 rules
CLOVA OCRFOWOCO_CLOVA_OCR_ENABLED, FOWOCO_CLOVA_OCR_INVOKE_URL, FOWOCO_CLOVA_OCR_SECRETOCR API가 503 반환
문서 변환FOWOCO_HWP_TO_HWPX_ENABLED, FOWOCO_HWPX_TO_HWP_ENABLED, FOWOCO_HWPX_PDF_ENABLED활성화하지 않은 변환은 사용 불가

전체 변수, 기본값, opt-in 조건은 .env.exampleSettings을 함께 확인합니다.

저장소 구조

app/
├── main.py FastAPI 애플리케이션 진입점
├── api/ HTTP Route, Schema, Internal 인증
├── agents/
│ ├── intent/ Intent 분류와 Guardrail
│ ├── language/ 다국어 안내 생성·검증
│ └── workflow_graph/ Renewal Supervisor와 Workflow Graph
├── ocr/ CLOVA OCR Adapter와 결과 정규화
├── documents/ HWP/HWPX 검사·편집·생성·변환
├── db/ 로컬·테스트용 인메모리 Adapter
└── core/ 환경 설정과 공통 기반
hwp-editor/ HWPX Editor MCP Server
docs/ 계약·운영·평가 문서
scripts/ 모델·검색 데이터·평가 도구
tests/ 단위·계약·통합 테스트

app/db는 운영 업무 데이터의 기준 저장소가 아닙니다. 운영 Worker·Task·Case와 승인 상태는 FOWOCO Server가 소유합니다.

개발과 검증

기본 검사

uv run ruff check app tests
PYTHONPATH=. FOWOCO_ENV_FILE=/dev/null uv run pytest \
-m "not qdrant_integration and not language_models and not rhwp_integration and not windows_ocr"

선택 통합 검사

Marker필요한 환경
qdrant_integrationQdrant와 language-retrieval 의존성
language_models고정된 언어 모델 Cache
rhwp_integrationrhwp 실행 파일과 문서 변환 환경
windows_ocrWindows PowerShell OCR Smoke 환경

기능을 변경할 때는 정상 결과뿐 아니라 Provider 비활성, Timeout, 낮은 신뢰도, 검토 필요 응답도 함께 검증합니다.

관련 문서

찾는 내용문서
Server 연결·인증·식별자AI Runtime Handshake
PLAN·ANALYZE 계약Analyses Contract
Renewal Workflow 계약Workflows Contract
Slot 재조회·재호출Slot Refill Contract
Language Assistant 운영Language Assistant Operations
Language 품질 기준Language Assistant Baseline
CLOVA OCR 연동CLOVA OCR Integration
HWP/HWPX 처리Document Engine
HWPX MCP 사용HWPX Editor MCP

팀 기여 원칙

이 저장소의 코드, 다이어그램, 문서는 FOWOCO AI 팀의 공동 자산입니다. 변경할 때는 개인별 작업 소개보다 Runtime 계약과 팀이 재현할 수 있는 검증 결과를 우선합니다.

  • API Schema를 바꾸면 관련 계약 문서와 테스트를 함께 수정합니다.
  • Provider 기능은 활성 조건, 실패 방식, 검토 경로를 문서화합니다.
  • 자동 승인·자동 발송·운영 DB 직접 수정 경계를 확장하지 않습니다.
  • Secret, 실제 개인정보, 내부 파일 경로를 커밋하지 않습니다.
  • README에는 현재 코드로 재현 가능한 실행 방법만 유지합니다.

About

AI Agent Workflow : Intent, Slot Filling, Ambiguity, Guardrail, Language, Response Agent

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

FOWOCO AI

Python 3.11+FastAPILangGraphQdrantCLOVA OCRHWPX MCPDocker

FOWOCO AI는 E-9 외국인근로자를 고용한 사업장의 재계약·체류기간 연장 업무를 지원하는 FastAPI 기반 AI Runtime입니다. HR 요청을 분석하고, 필요한 정보를 식별하며, 안내문과 행정 문서 초안을 만듭니다.

AI의 결과는 업무 확정값이 아닙니다. 권한 확인, 공식 업무 상태, 파일 저장, 승인과 감사 이력은 FOWOCO Server가 관리하고 최종 판단은 HR 담당자가 수행합니다.

목차

시스템 구조

전체 시스템 흐름

Client 요청이 Server와 AI Runtime을 거쳐 HR 검토로 이어지는 FOWOCO 전체 시스템 흐름

Client는 업무 요청을 입력하고 Server는 권한과 업무 상태를 확인합니다. AI Runtime은 Server가 허용한 Context만 받아 분석 결과와 초안을 반환합니다. 이후 Server의 업무 게이트와 HR 검토를 통과해야 실제 업무에 반영됩니다.

AI 팀 Runtime 상세

FastAPI API, Intent PLAN, Renewal Supervisor, Language Assistant, CLOVA OCR, Document Engine, HWPX MCP로 구성된 AI Runtime

이 저장소는 FOWOCO AI 팀이 공동으로 관리하는 Runtime입니다. FastAPI가 요청 진입점을 제공하고, Intent·PLAN과 Renewal Supervisor가 필요한 작업을 선택합니다. 언어 지원, OCR, 문서 처리는 각각 독립된 도구 경계를 유지합니다.

문서 처리 경로는 다음 순서를 따릅니다.

Document Engine → HWPX MCP → Document Engine → Server·HR 검토

HWPX MCP는 안전한 양식 편집 결과를 Document Engine으로 돌려줍니다. Document Engine이 결과를 검증하고 문서 초안으로 구성한 뒤에야 Server·HR 검토 경계로 전달합니다.

AI Runtime이 하는 일

영역역할비고
Intent·PLANHR 지시에서 Intent와 Workflow 후보를 찾고 필요한 필드를 요청PLAN 결정은 ANALYZE에서 재사용
Renewal Supervisor누락 정보, 근로자 요청, OCR, 안내문, 문서 생성 경로를 선택기본은 규칙 기반 Supervisor
Language Assistant표준 한국어, 쉬운 한국어, 대상 언어 안내 초안을 생성·검증LLM과 Qdrant는 선택 Provider
CLOVA OCR여권·외국인등록증 OCR 결과를 정규화하고 검토 사유를 반환낮은 신뢰도는 HR 검토로 전환
Document EngineHWP/HWPX 검사, 템플릿 조회, 필드 편집, 문서 생성·변환원본과 생성 결과를 분리
HWPX MCPHWPX 필드 탐색, 승인 기반 편집, 시각 검증을 지원hwp-editor/에 별도 서버로 구성

책임 경계

경계책임
AIPrompt, 모델 라우팅, Intent·Agent 판단, OCR·언어·문서 도구 조합, 초안 생성
Server인증·tenant, Worker·Task·Case, 업무 상태, 승인, FileStorage, 감사 이력
KnowledgeIntent·Workflow·Slot의 canonical ID, 공식 근거, 평가 데이터
ClientHR·근로자 화면, 요청 입력, 결과 검토, 승인·반려 입력

AI는 운영 DB를 직접 수정하지 않습니다. 필요한 필드 키를 반환하면 Server가 권한과 allow-list를 검사한 뒤 필요한 값만 다시 전달합니다. Provider 실패, 낮은 신뢰도, 필수 정보 누락은 자동 승인이나 임시 발송 대신 검토가 필요한 상태로 반환합니다.

빠른 시작

준비물

  • Python 3.11 이상
  • uv

1. 로컬 Runtime 실행

Provider 없이 API와 기본 Runtime을 확인하는 가장 짧은 경로입니다.

uv sync --frozen --extra dev
FOWOCO_ENV_FILE=/dev/null uv run uvicorn app.main:app --reload --port 8000

2. 첫 실행 확인

curl http://localhost:8000/openapi.json

브라우저에서는 http://localhost:8000/docs의 Swagger UI를 사용할 수 있습니다.

3. 선택 Provider 연결

cp .env.example .env

.env의 예시 API Key와 Secret을 실제 개발용 값으로 교체한 뒤 Runtime을 다시 시작합니다. 실제 Secret은 Git에 커밋하지 않습니다.

Qdrant를 포함한 컨테이너 환경은 다음과 같이 실행합니다.

docker compose up --build

API 사용

PLAN 요청 예시

로컬에서 FOWOCO_INTERNAL_API_TOKEN을 설정하지 않은 경우 다음 요청으로 분석 계약을 확인할 수 있습니다.

curl --request POST http://localhost:8000/internal/v1/analyses \
--header 'Content-Type: application/json' \
--data '{ "requestId": "local-plan-001", "phase": "PLAN", "analysisInput": { "instruction": "김민수 근로자의 체류기간 연장 준비사항을 확인해 주세요", "workers": [] } }'

운영 환경에서 Internal API를 호출할 때는 Server와 공유한 Bearer Token이 필요합니다.

Authorization: Bearer <FOWOCO_INTERNAL_API_TOKEN>

주요 Endpoint

MethodPath역할
POST/internal/v1/analysesPLAN·ANALYZE 실행
GET/internal/v1/intent/statusIntent Provider 상태 확인
GET/internal/v1/intent/readinessIntent warmup·readiness 확인
POST/internal/v1/workflows/renewal/runRenewal Workflow 실행
POST/internal/v1/language-assistant구조화된 다국어 안내 초안 생성
POST/internal/v1/ocr/worker-documents/{worker_document_id}근로자 신분서류 OCR 실행
GET/api/v1/documents/capabilities문서 처리 기능 조회
GET/api/v1/documents/templates사용 가능한 문서 템플릿 조회
POST/api/v1/documents/inspectHWP/HWPX 구조 검사
POST/api/v1/documents/edit문서 필드 편집
POST/api/v1/documents/generate템플릿 기반 문서 초안 생성
POST/api/v1/documents/convert지원 형식 간 변환

요청·응답 전체 스키마와 오류 응답은 실행 중인 Swagger UI와 계약 문서를 기준으로 확인합니다.

환경 설정

기본 설정은 외부 Provider 없이도 애플리케이션이 시작되도록 구성되어 있습니다. 선택 기능을 활성화하려면 해당 환경변수와 실행 의존성을 함께 준비해야 합니다.

기능주요 환경변수미설정·비활성 상태
Internal API 인증FOWOCO_INTERNAL_API_TOKEN로컬에서는 인증 생략, OCR 활성화 시 필수
Language LLMFOWOCO_LLM_PROVIDER, FOWOCO_LLM_BASE_URL, FOWOCO_LLM_API_KEY, FOWOCO_LLM_MODELLanguage Assistant 호출 시 명시적 실패
Language RetrievalFOWOCO_QDRANT_URL, FOWOCO_QDRANT_API_KEYRetrieval 없이 degraded 경로 사용
Intent 모델FOWOCO_INTENT_MODEL_ENABLED, FOWOCO_INTENT_BERT_MODEL_DIR, FOWOCO_HF_TOKEN재갱신 Intent stub 사용
A.X 보완FOWOCO_INTENT_ENABLE_AX, FOWOCO_INTENT_AX_BASE_MODEL, FOWOCO_INTENT_AX_ADAPTER_PATHBERT·규칙 경로만 사용
SupervisorFOWOCO_SUPERVISOR_MODE기본값 rules
CLOVA OCRFOWOCO_CLOVA_OCR_ENABLED, FOWOCO_CLOVA_OCR_INVOKE_URL, FOWOCO_CLOVA_OCR_SECRETOCR API가 503 반환
문서 변환FOWOCO_HWP_TO_HWPX_ENABLED, FOWOCO_HWPX_TO_HWP_ENABLED, FOWOCO_HWPX_PDF_ENABLED활성화하지 않은 변환은 사용 불가

전체 변수, 기본값, opt-in 조건은 .env.exampleSettings을 함께 확인합니다.

저장소 구조

app/
├── main.py FastAPI 애플리케이션 진입점
├── api/ HTTP Route, Schema, Internal 인증
├── agents/
│ ├── intent/ Intent 분류와 Guardrail
│ ├── language/ 다국어 안내 생성·검증
│ └── workflow_graph/ Renewal Supervisor와 Workflow Graph
├── ocr/ CLOVA OCR Adapter와 결과 정규화
├── documents/ HWP/HWPX 검사·편집·생성·변환
├── db/ 로컬·테스트용 인메모리 Adapter
└── core/ 환경 설정과 공통 기반
hwp-editor/ HWPX Editor MCP Server
docs/ 계약·운영·평가 문서
scripts/ 모델·검색 데이터·평가 도구
tests/ 단위·계약·통합 테스트

app/db는 운영 업무 데이터의 기준 저장소가 아닙니다. 운영 Worker·Task·Case와 승인 상태는 FOWOCO Server가 소유합니다.

개발과 검증

기본 검사

uv run ruff check app tests
PYTHONPATH=. FOWOCO_ENV_FILE=/dev/null uv run pytest \
-m "not qdrant_integration and not language_models and not rhwp_integration and not windows_ocr"

선택 통합 검사

Marker필요한 환경
qdrant_integrationQdrant와 language-retrieval 의존성
language_models고정된 언어 모델 Cache
rhwp_integrationrhwp 실행 파일과 문서 변환 환경
windows_ocrWindows PowerShell OCR Smoke 환경

기능을 변경할 때는 정상 결과뿐 아니라 Provider 비활성, Timeout, 낮은 신뢰도, 검토 필요 응답도 함께 검증합니다.

관련 문서

찾는 내용문서
Server 연결·인증·식별자AI Runtime Handshake
PLAN·ANALYZE 계약Analyses Contract
Renewal Workflow 계약Workflows Contract
Slot 재조회·재호출Slot Refill Contract
Language Assistant 운영Language Assistant Operations
Language 품질 기준Language Assistant Baseline
CLOVA OCR 연동CLOVA OCR Integration
HWP/HWPX 처리Document Engine
HWPX MCP 사용HWPX Editor MCP

팀 기여 원칙

이 저장소의 코드, 다이어그램, 문서는 FOWOCO AI 팀의 공동 자산입니다. 변경할 때는 개인별 작업 소개보다 Runtime 계약과 팀이 재현할 수 있는 검증 결과를 우선합니다.

  • API Schema를 바꾸면 관련 계약 문서와 테스트를 함께 수정합니다.
  • Provider 기능은 활성 조건, 실패 방식, 검토 경로를 문서화합니다.
  • 자동 승인·자동 발송·운영 DB 직접 수정 경계를 확장하지 않습니다.
  • Secret, 실제 개인정보, 내부 파일 경로를 커밋하지 않습니다.
  • README에는 현재 코드로 재현 가능한 실행 방법만 유지합니다.

About

AI Agent Workflow : Intent, Slot Filling, Ambiguity, Guardrail, Language, Response Agent

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

FOWOCO AI

Python 3.11+FastAPILangGraphQdrantCLOVA OCRHWPX MCPDocker

FOWOCO AI는 E-9 외국인근로자를 고용한 사업장의 재계약·체류기간 연장 업무를 지원하는 FastAPI 기반 AI Runtime입니다. HR 요청을 분석하고, 필요한 정보를 식별하며, 안내문과 행정 문서 초안을 만듭니다.

AI의 결과는 업무 확정값이 아닙니다. 권한 확인, 공식 업무 상태, 파일 저장, 승인과 감사 이력은 FOWOCO Server가 관리하고 최종 판단은 HR 담당자가 수행합니다.

목차

시스템 구조

전체 시스템 흐름

Client 요청이 Server와 AI Runtime을 거쳐 HR 검토로 이어지는 FOWOCO 전체 시스템 흐름

Client는 업무 요청을 입력하고 Server는 권한과 업무 상태를 확인합니다. AI Runtime은 Server가 허용한 Context만 받아 분석 결과와 초안을 반환합니다. 이후 Server의 업무 게이트와 HR 검토를 통과해야 실제 업무에 반영됩니다.

AI 팀 Runtime 상세

FastAPI API, Intent PLAN, Renewal Supervisor, Language Assistant, CLOVA OCR, Document Engine, HWPX MCP로 구성된 AI Runtime

이 저장소는 FOWOCO AI 팀이 공동으로 관리하는 Runtime입니다. FastAPI가 요청 진입점을 제공하고, Intent·PLAN과 Renewal Supervisor가 필요한 작업을 선택합니다. 언어 지원, OCR, 문서 처리는 각각 독립된 도구 경계를 유지합니다.

문서 처리 경로는 다음 순서를 따릅니다.

Document Engine → HWPX MCP → Document Engine → Server·HR 검토

HWPX MCP는 안전한 양식 편집 결과를 Document Engine으로 돌려줍니다. Document Engine이 결과를 검증하고 문서 초안으로 구성한 뒤에야 Server·HR 검토 경계로 전달합니다.

AI Runtime이 하는 일

영역역할비고
Intent·PLANHR 지시에서 Intent와 Workflow 후보를 찾고 필요한 필드를 요청PLAN 결정은 ANALYZE에서 재사용
Renewal Supervisor누락 정보, 근로자 요청, OCR, 안내문, 문서 생성 경로를 선택기본은 규칙 기반 Supervisor
Language Assistant표준 한국어, 쉬운 한국어, 대상 언어 안내 초안을 생성·검증LLM과 Qdrant는 선택 Provider
CLOVA OCR여권·외국인등록증 OCR 결과를 정규화하고 검토 사유를 반환낮은 신뢰도는 HR 검토로 전환
Document EngineHWP/HWPX 검사, 템플릿 조회, 필드 편집, 문서 생성·변환원본과 생성 결과를 분리
HWPX MCPHWPX 필드 탐색, 승인 기반 편집, 시각 검증을 지원hwp-editor/에 별도 서버로 구성

책임 경계

경계책임
AIPrompt, 모델 라우팅, Intent·Agent 판단, OCR·언어·문서 도구 조합, 초안 생성
Server인증·tenant, Worker·Task·Case, 업무 상태, 승인, FileStorage, 감사 이력
KnowledgeIntent·Workflow·Slot의 canonical ID, 공식 근거, 평가 데이터
ClientHR·근로자 화면, 요청 입력, 결과 검토, 승인·반려 입력

AI는 운영 DB를 직접 수정하지 않습니다. 필요한 필드 키를 반환하면 Server가 권한과 allow-list를 검사한 뒤 필요한 값만 다시 전달합니다. Provider 실패, 낮은 신뢰도, 필수 정보 누락은 자동 승인이나 임시 발송 대신 검토가 필요한 상태로 반환합니다.

빠른 시작

준비물

  • Python 3.11 이상
  • uv

1. 로컬 Runtime 실행

Provider 없이 API와 기본 Runtime을 확인하는 가장 짧은 경로입니다.

uv sync --frozen --extra dev
FOWOCO_ENV_FILE=/dev/null uv run uvicorn app.main:app --reload --port 8000

2. 첫 실행 확인

curl http://localhost:8000/openapi.json

브라우저에서는 http://localhost:8000/docs의 Swagger UI를 사용할 수 있습니다.

3. 선택 Provider 연결

cp .env.example .env

.env의 예시 API Key와 Secret을 실제 개발용 값으로 교체한 뒤 Runtime을 다시 시작합니다. 실제 Secret은 Git에 커밋하지 않습니다.

Qdrant를 포함한 컨테이너 환경은 다음과 같이 실행합니다.

docker compose up --build

API 사용

PLAN 요청 예시

로컬에서 FOWOCO_INTERNAL_API_TOKEN을 설정하지 않은 경우 다음 요청으로 분석 계약을 확인할 수 있습니다.

curl --request POST http://localhost:8000/internal/v1/analyses \
--header 'Content-Type: application/json' \
--data '{ "requestId": "local-plan-001", "phase": "PLAN", "analysisInput": { "instruction": "김민수 근로자의 체류기간 연장 준비사항을 확인해 주세요", "workers": [] } }'

운영 환경에서 Internal API를 호출할 때는 Server와 공유한 Bearer Token이 필요합니다.

Authorization: Bearer <FOWOCO_INTERNAL_API_TOKEN>

주요 Endpoint

MethodPath역할
POST/internal/v1/analysesPLAN·ANALYZE 실행
GET/internal/v1/intent/statusIntent Provider 상태 확인
GET/internal/v1/intent/readinessIntent warmup·readiness 확인
POST/internal/v1/workflows/renewal/runRenewal Workflow 실행
POST/internal/v1/language-assistant구조화된 다국어 안내 초안 생성
POST/internal/v1/ocr/worker-documents/{worker_document_id}근로자 신분서류 OCR 실행
GET/api/v1/documents/capabilities문서 처리 기능 조회
GET/api/v1/documents/templates사용 가능한 문서 템플릿 조회
POST/api/v1/documents/inspectHWP/HWPX 구조 검사
POST/api/v1/documents/edit문서 필드 편집
POST/api/v1/documents/generate템플릿 기반 문서 초안 생성
POST/api/v1/documents/convert지원 형식 간 변환

요청·응답 전체 스키마와 오류 응답은 실행 중인 Swagger UI와 계약 문서를 기준으로 확인합니다.

환경 설정

기본 설정은 외부 Provider 없이도 애플리케이션이 시작되도록 구성되어 있습니다. 선택 기능을 활성화하려면 해당 환경변수와 실행 의존성을 함께 준비해야 합니다.

기능주요 환경변수미설정·비활성 상태
Internal API 인증FOWOCO_INTERNAL_API_TOKEN로컬에서는 인증 생략, OCR 활성화 시 필수
Language LLMFOWOCO_LLM_PROVIDER, FOWOCO_LLM_BASE_URL, FOWOCO_LLM_API_KEY, FOWOCO_LLM_MODELLanguage Assistant 호출 시 명시적 실패
Language RetrievalFOWOCO_QDRANT_URL, FOWOCO_QDRANT_API_KEYRetrieval 없이 degraded 경로 사용
Intent 모델FOWOCO_INTENT_MODEL_ENABLED, FOWOCO_INTENT_BERT_MODEL_DIR, FOWOCO_HF_TOKEN재갱신 Intent stub 사용
A.X 보완FOWOCO_INTENT_ENABLE_AX, FOWOCO_INTENT_AX_BASE_MODEL, FOWOCO_INTENT_AX_ADAPTER_PATHBERT·규칙 경로만 사용
SupervisorFOWOCO_SUPERVISOR_MODE기본값 rules
CLOVA OCRFOWOCO_CLOVA_OCR_ENABLED, FOWOCO_CLOVA_OCR_INVOKE_URL, FOWOCO_CLOVA_OCR_SECRETOCR API가 503 반환
문서 변환FOWOCO_HWP_TO_HWPX_ENABLED, FOWOCO_HWPX_TO_HWP_ENABLED, FOWOCO_HWPX_PDF_ENABLED활성화하지 않은 변환은 사용 불가

전체 변수, 기본값, opt-in 조건은 .env.exampleSettings을 함께 확인합니다.

저장소 구조

app/
├── main.py FastAPI 애플리케이션 진입점
├── api/ HTTP Route, Schema, Internal 인증
├── agents/
│ ├── intent/ Intent 분류와 Guardrail
│ ├── language/ 다국어 안내 생성·검증
│ └── workflow_graph/ Renewal Supervisor와 Workflow Graph
├── ocr/ CLOVA OCR Adapter와 결과 정규화
├── documents/ HWP/HWPX 검사·편집·생성·변환
├── db/ 로컬·테스트용 인메모리 Adapter
└── core/ 환경 설정과 공통 기반
hwp-editor/ HWPX Editor MCP Server
docs/ 계약·운영·평가 문서
scripts/ 모델·검색 데이터·평가 도구
tests/ 단위·계약·통합 테스트

app/db는 운영 업무 데이터의 기준 저장소가 아닙니다. 운영 Worker·Task·Case와 승인 상태는 FOWOCO Server가 소유합니다.

개발과 검증

기본 검사

uv run ruff check app tests
PYTHONPATH=. FOWOCO_ENV_FILE=/dev/null uv run pytest \
-m "not qdrant_integration and not language_models and not rhwp_integration and not windows_ocr"

선택 통합 검사

Marker필요한 환경
qdrant_integrationQdrant와 language-retrieval 의존성
language_models고정된 언어 모델 Cache
rhwp_integrationrhwp 실행 파일과 문서 변환 환경
windows_ocrWindows PowerShell OCR Smoke 환경

기능을 변경할 때는 정상 결과뿐 아니라 Provider 비활성, Timeout, 낮은 신뢰도, 검토 필요 응답도 함께 검증합니다.

관련 문서

찾는 내용문서
Server 연결·인증·식별자AI Runtime Handshake
PLAN·ANALYZE 계약Analyses Contract
Renewal Workflow 계약Workflows Contract
Slot 재조회·재호출Slot Refill Contract
Language Assistant 운영Language Assistant Operations
Language 품질 기준Language Assistant Baseline
CLOVA OCR 연동CLOVA OCR Integration
HWP/HWPX 처리Document Engine
HWPX MCP 사용HWPX Editor MCP

팀 기여 원칙

이 저장소의 코드, 다이어그램, 문서는 FOWOCO AI 팀의 공동 자산입니다. 변경할 때는 개인별 작업 소개보다 Runtime 계약과 팀이 재현할 수 있는 검증 결과를 우선합니다.

  • API Schema를 바꾸면 관련 계약 문서와 테스트를 함께 수정합니다.
  • Provider 기능은 활성 조건, 실패 방식, 검토 경로를 문서화합니다.
  • 자동 승인·자동 발송·운영 DB 직접 수정 경계를 확장하지 않습니다.
  • Secret, 실제 개인정보, 내부 파일 경로를 커밋하지 않습니다.
  • README에는 현재 코드로 재현 가능한 실행 방법만 유지합니다.

About

AI Agent Workflow : Intent, Slot Filling, Ambiguity, Guardrail, Language, Response Agent

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

FOWOCO AI

Python 3.11+FastAPILangGraphQdrantCLOVA OCRHWPX MCPDocker

FOWOCO AI는 E-9 외국인근로자를 고용한 사업장의 재계약·체류기간 연장 업무를 지원하는 FastAPI 기반 AI Runtime입니다. HR 요청을 분석하고, 필요한 정보를 식별하며, 안내문과 행정 문서 초안을 만듭니다.

AI의 결과는 업무 확정값이 아닙니다. 권한 확인, 공식 업무 상태, 파일 저장, 승인과 감사 이력은 FOWOCO Server가 관리하고 최종 판단은 HR 담당자가 수행합니다.

목차

시스템 구조

전체 시스템 흐름

Client 요청이 Server와 AI Runtime을 거쳐 HR 검토로 이어지는 FOWOCO 전체 시스템 흐름

Client는 업무 요청을 입력하고 Server는 권한과 업무 상태를 확인합니다. AI Runtime은 Server가 허용한 Context만 받아 분석 결과와 초안을 반환합니다. 이후 Server의 업무 게이트와 HR 검토를 통과해야 실제 업무에 반영됩니다.

AI 팀 Runtime 상세

FastAPI API, Intent PLAN, Renewal Supervisor, Language Assistant, CLOVA OCR, Document Engine, HWPX MCP로 구성된 AI Runtime

이 저장소는 FOWOCO AI 팀이 공동으로 관리하는 Runtime입니다. FastAPI가 요청 진입점을 제공하고, Intent·PLAN과 Renewal Supervisor가 필요한 작업을 선택합니다. 언어 지원, OCR, 문서 처리는 각각 독립된 도구 경계를 유지합니다.

문서 처리 경로는 다음 순서를 따릅니다.

Document Engine → HWPX MCP → Document Engine → Server·HR 검토

HWPX MCP는 안전한 양식 편집 결과를 Document Engine으로 돌려줍니다. Document Engine이 결과를 검증하고 문서 초안으로 구성한 뒤에야 Server·HR 검토 경계로 전달합니다.

AI Runtime이 하는 일

영역역할비고
Intent·PLANHR 지시에서 Intent와 Workflow 후보를 찾고 필요한 필드를 요청PLAN 결정은 ANALYZE에서 재사용
Renewal Supervisor누락 정보, 근로자 요청, OCR, 안내문, 문서 생성 경로를 선택기본은 규칙 기반 Supervisor
Language Assistant표준 한국어, 쉬운 한국어, 대상 언어 안내 초안을 생성·검증LLM과 Qdrant는 선택 Provider
CLOVA OCR여권·외국인등록증 OCR 결과를 정규화하고 검토 사유를 반환낮은 신뢰도는 HR 검토로 전환
Document EngineHWP/HWPX 검사, 템플릿 조회, 필드 편집, 문서 생성·변환원본과 생성 결과를 분리
HWPX MCPHWPX 필드 탐색, 승인 기반 편집, 시각 검증을 지원hwp-editor/에 별도 서버로 구성

책임 경계

경계책임
AIPrompt, 모델 라우팅, Intent·Agent 판단, OCR·언어·문서 도구 조합, 초안 생성
Server인증·tenant, Worker·Task·Case, 업무 상태, 승인, FileStorage, 감사 이력
KnowledgeIntent·Workflow·Slot의 canonical ID, 공식 근거, 평가 데이터
ClientHR·근로자 화면, 요청 입력, 결과 검토, 승인·반려 입력

AI는 운영 DB를 직접 수정하지 않습니다. 필요한 필드 키를 반환하면 Server가 권한과 allow-list를 검사한 뒤 필요한 값만 다시 전달합니다. Provider 실패, 낮은 신뢰도, 필수 정보 누락은 자동 승인이나 임시 발송 대신 검토가 필요한 상태로 반환합니다.

빠른 시작

준비물

  • Python 3.11 이상
  • uv

1. 로컬 Runtime 실행

Provider 없이 API와 기본 Runtime을 확인하는 가장 짧은 경로입니다.

uv sync --frozen --extra dev
FOWOCO_ENV_FILE=/dev/null uv run uvicorn app.main:app --reload --port 8000

2. 첫 실행 확인

curl http://localhost:8000/openapi.json

브라우저에서는 http://localhost:8000/docs의 Swagger UI를 사용할 수 있습니다.

3. 선택 Provider 연결

cp .env.example .env

.env의 예시 API Key와 Secret을 실제 개발용 값으로 교체한 뒤 Runtime을 다시 시작합니다. 실제 Secret은 Git에 커밋하지 않습니다.

Qdrant를 포함한 컨테이너 환경은 다음과 같이 실행합니다.

docker compose up --build

API 사용

PLAN 요청 예시

로컬에서 FOWOCO_INTERNAL_API_TOKEN을 설정하지 않은 경우 다음 요청으로 분석 계약을 확인할 수 있습니다.

curl --request POST http://localhost:8000/internal/v1/analyses \
--header 'Content-Type: application/json' \
--data '{ "requestId": "local-plan-001", "phase": "PLAN", "analysisInput": { "instruction": "김민수 근로자의 체류기간 연장 준비사항을 확인해 주세요", "workers": [] } }'

운영 환경에서 Internal API를 호출할 때는 Server와 공유한 Bearer Token이 필요합니다.

Authorization: Bearer <FOWOCO_INTERNAL_API_TOKEN>

주요 Endpoint

MethodPath역할
POST/internal/v1/analysesPLAN·ANALYZE 실행
GET/internal/v1/intent/statusIntent Provider 상태 확인
GET/internal/v1/intent/readinessIntent warmup·readiness 확인
POST/internal/v1/workflows/renewal/runRenewal Workflow 실행
POST/internal/v1/language-assistant구조화된 다국어 안내 초안 생성
POST/internal/v1/ocr/worker-documents/{worker_document_id}근로자 신분서류 OCR 실행
GET/api/v1/documents/capabilities문서 처리 기능 조회
GET/api/v1/documents/templates사용 가능한 문서 템플릿 조회
POST/api/v1/documents/inspectHWP/HWPX 구조 검사
POST/api/v1/documents/edit문서 필드 편집
POST/api/v1/documents/generate템플릿 기반 문서 초안 생성
POST/api/v1/documents/convert지원 형식 간 변환

요청·응답 전체 스키마와 오류 응답은 실행 중인 Swagger UI와 계약 문서를 기준으로 확인합니다.

환경 설정

기본 설정은 외부 Provider 없이도 애플리케이션이 시작되도록 구성되어 있습니다. 선택 기능을 활성화하려면 해당 환경변수와 실행 의존성을 함께 준비해야 합니다.

기능주요 환경변수미설정·비활성 상태
Internal API 인증FOWOCO_INTERNAL_API_TOKEN로컬에서는 인증 생략, OCR 활성화 시 필수
Language LLMFOWOCO_LLM_PROVIDER, FOWOCO_LLM_BASE_URL, FOWOCO_LLM_API_KEY, FOWOCO_LLM_MODELLanguage Assistant 호출 시 명시적 실패
Language RetrievalFOWOCO_QDRANT_URL, FOWOCO_QDRANT_API_KEYRetrieval 없이 degraded 경로 사용
Intent 모델FOWOCO_INTENT_MODEL_ENABLED, FOWOCO_INTENT_BERT_MODEL_DIR, FOWOCO_HF_TOKEN재갱신 Intent stub 사용
A.X 보완FOWOCO_INTENT_ENABLE_AX, FOWOCO_INTENT_AX_BASE_MODEL, FOWOCO_INTENT_AX_ADAPTER_PATHBERT·규칙 경로만 사용
SupervisorFOWOCO_SUPERVISOR_MODE기본값 rules
CLOVA OCRFOWOCO_CLOVA_OCR_ENABLED, FOWOCO_CLOVA_OCR_INVOKE_URL, FOWOCO_CLOVA_OCR_SECRETOCR API가 503 반환
문서 변환FOWOCO_HWP_TO_HWPX_ENABLED, FOWOCO_HWPX_TO_HWP_ENABLED, FOWOCO_HWPX_PDF_ENABLED활성화하지 않은 변환은 사용 불가

전체 변수, 기본값, opt-in 조건은 .env.exampleSettings을 함께 확인합니다.

저장소 구조

app/
├── main.py FastAPI 애플리케이션 진입점
├── api/ HTTP Route, Schema, Internal 인증
├── agents/
│ ├── intent/ Intent 분류와 Guardrail
│ ├── language/ 다국어 안내 생성·검증
│ └── workflow_graph/ Renewal Supervisor와 Workflow Graph
├── ocr/ CLOVA OCR Adapter와 결과 정규화
├── documents/ HWP/HWPX 검사·편집·생성·변환
├── db/ 로컬·테스트용 인메모리 Adapter
└── core/ 환경 설정과 공통 기반
hwp-editor/ HWPX Editor MCP Server
docs/ 계약·운영·평가 문서
scripts/ 모델·검색 데이터·평가 도구
tests/ 단위·계약·통합 테스트

app/db는 운영 업무 데이터의 기준 저장소가 아닙니다. 운영 Worker·Task·Case와 승인 상태는 FOWOCO Server가 소유합니다.

개발과 검증

기본 검사

uv run ruff check app tests
PYTHONPATH=. FOWOCO_ENV_FILE=/dev/null uv run pytest \
-m "not qdrant_integration and not language_models and not rhwp_integration and not windows_ocr"

선택 통합 검사

Marker필요한 환경
qdrant_integrationQdrant와 language-retrieval 의존성
language_models고정된 언어 모델 Cache
rhwp_integrationrhwp 실행 파일과 문서 변환 환경
windows_ocrWindows PowerShell OCR Smoke 환경

기능을 변경할 때는 정상 결과뿐 아니라 Provider 비활성, Timeout, 낮은 신뢰도, 검토 필요 응답도 함께 검증합니다.

관련 문서

찾는 내용문서
Server 연결·인증·식별자AI Runtime Handshake
PLAN·ANALYZE 계약Analyses Contract
Renewal Workflow 계약Workflows Contract
Slot 재조회·재호출Slot Refill Contract
Language Assistant 운영Language Assistant Operations
Language 품질 기준Language Assistant Baseline
CLOVA OCR 연동CLOVA OCR Integration
HWP/HWPX 처리Document Engine
HWPX MCP 사용HWPX Editor MCP

팀 기여 원칙

이 저장소의 코드, 다이어그램, 문서는 FOWOCO AI 팀의 공동 자산입니다. 변경할 때는 개인별 작업 소개보다 Runtime 계약과 팀이 재현할 수 있는 검증 결과를 우선합니다.

  • API Schema를 바꾸면 관련 계약 문서와 테스트를 함께 수정합니다.
  • Provider 기능은 활성 조건, 실패 방식, 검토 경로를 문서화합니다.
  • 자동 승인·자동 발송·운영 DB 직접 수정 경계를 확장하지 않습니다.
  • Secret, 실제 개인정보, 내부 파일 경로를 커밋하지 않습니다.
  • README에는 현재 코드로 재현 가능한 실행 방법만 유지합니다.

About

AI Agent Workflow : Intent, Slot Filling, Ambiguity, Guardrail, Language, Response Agent

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

FOWOCO AI

Python 3.11+FastAPILangGraphQdrantCLOVA OCRHWPX MCPDocker

FOWOCO AI는 E-9 외국인근로자를 고용한 사업장의 재계약·체류기간 연장 업무를 지원하는 FastAPI 기반 AI Runtime입니다. HR 요청을 분석하고, 필요한 정보를 식별하며, 안내문과 행정 문서 초안을 만듭니다.

AI의 결과는 업무 확정값이 아닙니다. 권한 확인, 공식 업무 상태, 파일 저장, 승인과 감사 이력은 FOWOCO Server가 관리하고 최종 판단은 HR 담당자가 수행합니다.

목차

시스템 구조

전체 시스템 흐름

Client 요청이 Server와 AI Runtime을 거쳐 HR 검토로 이어지는 FOWOCO 전체 시스템 흐름

Client는 업무 요청을 입력하고 Server는 권한과 업무 상태를 확인합니다. AI Runtime은 Server가 허용한 Context만 받아 분석 결과와 초안을 반환합니다. 이후 Server의 업무 게이트와 HR 검토를 통과해야 실제 업무에 반영됩니다.

AI 팀 Runtime 상세

FastAPI API, Intent PLAN, Renewal Supervisor, Language Assistant, CLOVA OCR, Document Engine, HWPX MCP로 구성된 AI Runtime

이 저장소는 FOWOCO AI 팀이 공동으로 관리하는 Runtime입니다. FastAPI가 요청 진입점을 제공하고, Intent·PLAN과 Renewal Supervisor가 필요한 작업을 선택합니다. 언어 지원, OCR, 문서 처리는 각각 독립된 도구 경계를 유지합니다.

문서 처리 경로는 다음 순서를 따릅니다.

Document Engine → HWPX MCP → Document Engine → Server·HR 검토

HWPX MCP는 안전한 양식 편집 결과를 Document Engine으로 돌려줍니다. Document Engine이 결과를 검증하고 문서 초안으로 구성한 뒤에야 Server·HR 검토 경계로 전달합니다.

AI Runtime이 하는 일

영역역할비고
Intent·PLANHR 지시에서 Intent와 Workflow 후보를 찾고 필요한 필드를 요청PLAN 결정은 ANALYZE에서 재사용
Renewal Supervisor누락 정보, 근로자 요청, OCR, 안내문, 문서 생성 경로를 선택기본은 규칙 기반 Supervisor
Language Assistant표준 한국어, 쉬운 한국어, 대상 언어 안내 초안을 생성·검증LLM과 Qdrant는 선택 Provider
CLOVA OCR여권·외국인등록증 OCR 결과를 정규화하고 검토 사유를 반환낮은 신뢰도는 HR 검토로 전환
Document EngineHWP/HWPX 검사, 템플릿 조회, 필드 편집, 문서 생성·변환원본과 생성 결과를 분리
HWPX MCPHWPX 필드 탐색, 승인 기반 편집, 시각 검증을 지원hwp-editor/에 별도 서버로 구성

책임 경계

경계책임
AIPrompt, 모델 라우팅, Intent·Agent 판단, OCR·언어·문서 도구 조합, 초안 생성
Server인증·tenant, Worker·Task·Case, 업무 상태, 승인, FileStorage, 감사 이력
KnowledgeIntent·Workflow·Slot의 canonical ID, 공식 근거, 평가 데이터
ClientHR·근로자 화면, 요청 입력, 결과 검토, 승인·반려 입력

AI는 운영 DB를 직접 수정하지 않습니다. 필요한 필드 키를 반환하면 Server가 권한과 allow-list를 검사한 뒤 필요한 값만 다시 전달합니다. Provider 실패, 낮은 신뢰도, 필수 정보 누락은 자동 승인이나 임시 발송 대신 검토가 필요한 상태로 반환합니다.

빠른 시작

준비물

  • Python 3.11 이상
  • uv

1. 로컬 Runtime 실행

Provider 없이 API와 기본 Runtime을 확인하는 가장 짧은 경로입니다.

uv sync --frozen --extra dev
FOWOCO_ENV_FILE=/dev/null uv run uvicorn app.main:app --reload --port 8000

2. 첫 실행 확인

curl http://localhost:8000/openapi.json

브라우저에서는 http://localhost:8000/docs의 Swagger UI를 사용할 수 있습니다.

3. 선택 Provider 연결

cp .env.example .env

.env의 예시 API Key와 Secret을 실제 개발용 값으로 교체한 뒤 Runtime을 다시 시작합니다. 실제 Secret은 Git에 커밋하지 않습니다.

Qdrant를 포함한 컨테이너 환경은 다음과 같이 실행합니다.

docker compose up --build

API 사용

PLAN 요청 예시

로컬에서 FOWOCO_INTERNAL_API_TOKEN을 설정하지 않은 경우 다음 요청으로 분석 계약을 확인할 수 있습니다.

curl --request POST http://localhost:8000/internal/v1/analyses \
--header 'Content-Type: application/json' \
--data '{ "requestId": "local-plan-001", "phase": "PLAN", "analysisInput": { "instruction": "김민수 근로자의 체류기간 연장 준비사항을 확인해 주세요", "workers": [] } }'

운영 환경에서 Internal API를 호출할 때는 Server와 공유한 Bearer Token이 필요합니다.

Authorization: Bearer <FOWOCO_INTERNAL_API_TOKEN>

주요 Endpoint

MethodPath역할
POST/internal/v1/analysesPLAN·ANALYZE 실행
GET/internal/v1/intent/statusIntent Provider 상태 확인
GET/internal/v1/intent/readinessIntent warmup·readiness 확인
POST/internal/v1/workflows/renewal/runRenewal Workflow 실행
POST/internal/v1/language-assistant구조화된 다국어 안내 초안 생성
POST/internal/v1/ocr/worker-documents/{worker_document_id}근로자 신분서류 OCR 실행
GET/api/v1/documents/capabilities문서 처리 기능 조회
GET/api/v1/documents/templates사용 가능한 문서 템플릿 조회
POST/api/v1/documents/inspectHWP/HWPX 구조 검사
POST/api/v1/documents/edit문서 필드 편집
POST/api/v1/documents/generate템플릿 기반 문서 초안 생성
POST/api/v1/documents/convert지원 형식 간 변환

요청·응답 전체 스키마와 오류 응답은 실행 중인 Swagger UI와 계약 문서를 기준으로 확인합니다.

환경 설정

기본 설정은 외부 Provider 없이도 애플리케이션이 시작되도록 구성되어 있습니다. 선택 기능을 활성화하려면 해당 환경변수와 실행 의존성을 함께 준비해야 합니다.

기능주요 환경변수미설정·비활성 상태
Internal API 인증FOWOCO_INTERNAL_API_TOKEN로컬에서는 인증 생략, OCR 활성화 시 필수
Language LLMFOWOCO_LLM_PROVIDER, FOWOCO_LLM_BASE_URL, FOWOCO_LLM_API_KEY, FOWOCO_LLM_MODELLanguage Assistant 호출 시 명시적 실패
Language RetrievalFOWOCO_QDRANT_URL, FOWOCO_QDRANT_API_KEYRetrieval 없이 degraded 경로 사용
Intent 모델FOWOCO_INTENT_MODEL_ENABLED, FOWOCO_INTENT_BERT_MODEL_DIR, FOWOCO_HF_TOKEN재갱신 Intent stub 사용
A.X 보완FOWOCO_INTENT_ENABLE_AX, FOWOCO_INTENT_AX_BASE_MODEL, FOWOCO_INTENT_AX_ADAPTER_PATHBERT·규칙 경로만 사용
SupervisorFOWOCO_SUPERVISOR_MODE기본값 rules
CLOVA OCRFOWOCO_CLOVA_OCR_ENABLED, FOWOCO_CLOVA_OCR_INVOKE_URL, FOWOCO_CLOVA_OCR_SECRETOCR API가 503 반환
문서 변환FOWOCO_HWP_TO_HWPX_ENABLED, FOWOCO_HWPX_TO_HWP_ENABLED, FOWOCO_HWPX_PDF_ENABLED활성화하지 않은 변환은 사용 불가

전체 변수, 기본값, opt-in 조건은 .env.exampleSettings을 함께 확인합니다.

저장소 구조

app/
├── main.py FastAPI 애플리케이션 진입점
├── api/ HTTP Route, Schema, Internal 인증
├── agents/
│ ├── intent/ Intent 분류와 Guardrail
│ ├── language/ 다국어 안내 생성·검증
│ └── workflow_graph/ Renewal Supervisor와 Workflow Graph
├── ocr/ CLOVA OCR Adapter와 결과 정규화
├── documents/ HWP/HWPX 검사·편집·생성·변환
├── db/ 로컬·테스트용 인메모리 Adapter
└── core/ 환경 설정과 공통 기반
hwp-editor/ HWPX Editor MCP Server
docs/ 계약·운영·평가 문서
scripts/ 모델·검색 데이터·평가 도구
tests/ 단위·계약·통합 테스트

app/db는 운영 업무 데이터의 기준 저장소가 아닙니다. 운영 Worker·Task·Case와 승인 상태는 FOWOCO Server가 소유합니다.

개발과 검증

기본 검사

uv run ruff check app tests
PYTHONPATH=. FOWOCO_ENV_FILE=/dev/null uv run pytest \
-m "not qdrant_integration and not language_models and not rhwp_integration and not windows_ocr"

선택 통합 검사

Marker필요한 환경
qdrant_integrationQdrant와 language-retrieval 의존성
language_models고정된 언어 모델 Cache
rhwp_integrationrhwp 실행 파일과 문서 변환 환경
windows_ocrWindows PowerShell OCR Smoke 환경

기능을 변경할 때는 정상 결과뿐 아니라 Provider 비활성, Timeout, 낮은 신뢰도, 검토 필요 응답도 함께 검증합니다.

관련 문서

찾는 내용문서
Server 연결·인증·식별자AI Runtime Handshake
PLAN·ANALYZE 계약Analyses Contract
Renewal Workflow 계약Workflows Contract
Slot 재조회·재호출Slot Refill Contract
Language Assistant 운영Language Assistant Operations
Language 품질 기준Language Assistant Baseline
CLOVA OCR 연동CLOVA OCR Integration
HWP/HWPX 처리Document Engine
HWPX MCP 사용HWPX Editor MCP

팀 기여 원칙

이 저장소의 코드, 다이어그램, 문서는 FOWOCO AI 팀의 공동 자산입니다. 변경할 때는 개인별 작업 소개보다 Runtime 계약과 팀이 재현할 수 있는 검증 결과를 우선합니다.

  • API Schema를 바꾸면 관련 계약 문서와 테스트를 함께 수정합니다.
  • Provider 기능은 활성 조건, 실패 방식, 검토 경로를 문서화합니다.
  • 자동 승인·자동 발송·운영 DB 직접 수정 경계를 확장하지 않습니다.
  • Secret, 실제 개인정보, 내부 파일 경로를 커밋하지 않습니다.
  • README에는 현재 코드로 재현 가능한 실행 방법만 유지합니다.

About

AI Agent Workflow : Intent, Slot Filling, Ambiguity, Guardrail, Language, Response Agent

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages