.env를 통해 수행됩니다. example.env를 복사하고 값을 입력하세요:
설정 수준
각 통합에는 중요도를 나타내는 설정 수준이 있습니다:참고: 관리자가 설정한 모델(관리자 → 모델 페이지)은 LLM 환경 변수를 대체할 수 있습니다. 상태 확인은 두 소스를 모두 고려합니다.
프론트엔드 (로컬 개발 전용)
프론트엔드에는 로컬 개발 전용 별도의 env 파일이 있습니다:frontend/.env.local.
이 파일은 Docker에서 사용되지 않습니다. Docker 컨테이너 내에서 Next.js는 /api/*를 Python 백엔드로 내부적으로 프록시합니다 (포트 8000은 컨테이너 내부용이므로), 프론트엔드 env 파일이 필요하지 않습니다.
로컬 개발의 경우 기본값이 그대로 작동합니다 — 백엔드가 기본이 아닌 포트에서 실행되지 않는 한 frontend/.env.local을 생성할 필요가 없습니다.
필요한 경우 frontend/.env.local을 수동으로 생성하여 재정의할 수 있습니다:
빌드 타임 참고:NEXT_PUBLIC_*변수는pnpm build시점에 JS 번들에 포함됩니다. 런타임에 변경하는 것(예: 루트.env를 통해)은 효과가 없습니다 — 이것이 로컬 개발 전용으로frontend/.env.local에 있는 이유입니다.
LLM (필수)
해결 순서: 사용자 선호도 → Admin 모델 (DB) → ENV 폴백. Admin → Models에서 역할이 “General”인 관리 모델이 구성된 경우 이러한 ENV 변수는 폴백으로만 제공됩니다. 상태 확인은 두 출처를 모두 고려합니다.
MarkItDown OCR 해상도
convert_to_markdown 내장 도구와 RAG 수집 파이프라인은 모두 Microsoft의 MarkItDown + 공식 markitdown-ocr 플러그인을 사용하여 문서에서 텍스트를 추출합니다 — 비전 기능이 있는 LLM을 사용할 수 있을 때 임베드된 이미지와 스캔된 PDF 페이지에 대한 OCR을 포함합니다.
비전 LLM 해상도 순서 (첫 번째 일치 우선):
추론 모델은 OCR에 선호되지 않습니다. 추론 계층(
o1, o3-mini, DeepSeek-R1)은 역사적으로 비전 지원이 부족하며 OCR에는 잘못된 도구입니다 — OCR은 인식 작업이지 숙고 작업이 아닙니다. 워크스페이스에 supports_vision=True인 추론 모델만 있는 경우 기본 LLM 경로를 통해 여전히 선택되지만, 리졸버는 fast/general보다 높게 순위를 매기지 않습니다.
제로 회귀 폴백: 어떤 수준에서도 비전 기능이 있는 모델을 찾을 수 없을 때, OCR은 자동으로 비활성화되고 MarkItDown은 텍스트 전용 모드에서 실행됩니다. Word/PowerPoint/Excel 임베드된 이미지 OCR은 사용할 수 없게 됩니다(이 기능이 출시되기 전과 동일), 하지만 다른 모든 텍스트 추출(제목, 표, 단락 텍스트)은 변경 없이 계속 작동합니다. 이 기능을 추가하여 추출이 이전 동작보다 악화된 경우는 절대 없습니다.
**OpenAI가 아닌 제공자(Anthropic, Google Gemini 등)**는 투명하게 지원됩니다: 해석된 LLM은 LiteLLMOpenAIShim으로 래핑되어 chat.completions.create(...) 호출을 litellm.completion()을 통해 라우팅하며, 이는 제공자별 메시지 형식 변환(예: Anthropic의 source.type="base64" 이미지 블록)을 처리합니다. 하나의 shim은 LiteLLM이 지원하는 모든 제공자를 포함합니다 — 새로운 제공자를 추가하는 데 FIM One에서 코드 변경이 필요하지 않습니다.
확장 사고 (추론)
LLM_REASONING_EFFORT가 설정되면 FIM One은 모델의 확장 사고 기능을 활성화하여 내부 사고의 연쇄가 UI의 “thinking” 단계에 표시됩니다. FIM One은 LiteLLM을 사용하여 추론 노력 매개변수를 각 제공자의 기본 형식으로 자동으로 변환합니다.
지원되는 제공자
LiteLLM은
LLM_BASE_URL에서 제공자를 자동으로 감지하고 올바른 API 형식으로 매핑합니다. 알 수 없는 URL은 OpenAI 호환으로 처리됩니다.
중요한 주의사항
추론 활성화 시 온도 제약
일부 제공자는 추론이 활성화되었을 때 온도 제약을 적용합니다:- Anthropic: 확장 사고가 활성화되면
temperature=1이 필수입니다. Anthropic에서 확장 사고를 사용하는 경우LLM_TEMPERATURE=1을 반드시 설정해야 합니다 — Anthropic은 사고가 활성화되었을 때 다른 값을 거부합니다. - OpenAI GPT-5.x: 항상
temperature=1만 지원합니다. LiteLLM의drop_params필터링이 이를 자동으로 처리합니다 — 지원되지 않는 온도 값은 자동으로 삭제됩니다. GPT-5.x의 경우 사용자 조치가 필요하지 않습니다.
LLM_REASONING_BUDGET_TOKENS 작동 방식
이 변수는 주로 Anthropic 경로에서 의미가 있습니다. 설정되면 자동 계산된 예산을 재정의하고 LiteLLM을 통해 thinking 매개변수에서 budget_tokens로 전송됩니다. 설정되지 않으면 예산은 LLM_MAX_OUTPUT_TOKENS x 노력 비율에서 파생됩니다:
최소 예산은 1,024 tokens입니다(Anthropic의 하드 최소값).
OpenAI 및 Gemini의 경우, 제공자가
reasoning_effort 수준에 따라 토큰 할당을 내부적으로 처리합니다 — LLM_REASONING_BUDGET_TOKENS는 영향을 미치지 않습니다.
에이전트 실행
ReAct Agent
DAG Planner
도메인 분류
ReAct 및 DAG 실행 이전에 실행되는 독립적인 LLM 기반 도메인 감지 레이어를 제어합니다. 쿼리가 전문 도메인으로 분류되면 시스템은 도메인 인식 기능을 활성화합니다: 추론 모델로의 모델 에스컬레이션, 도메인별 SOP 지침, 인용 검증(DAG만 해당).Context Guard
대화가 모델의 한계를 초과하지 않도록 방지하는 자동 컨텍스트 윈도우 관리를 제어합니다.Content Guardrails
콘텐츠를 검사하는 가드레일의 쉼표로 구분된 이름입니다. 도구 권한 게이트(core/hooks/*)와 보안 계층(core/security/*)과는 독립적입니다. 전체 그림은 Content Guardrails를 참조하세요.
에이전트 워크스페이스
시스템
웹 도구 (선택사항)
빠른 시작 팁: JINA_API_KEY만 설정하면 웹 검색, 웹 가져오기, 임베딩 및 재순위 지정이 모두 한 번에 활성화됩니다 — 하나의 키로 네 가지 서비스를 이용할 수 있습니다. 아래 변수를 사용하여 각 서비스를 개별적으로 재정의할 수 있습니다.
RAG 및 지식 기반 (권장)
임베딩
임베딩은 텍스트를 벡터로 변환하여 지식 기반 검색에 사용합니다. FIM One은 표준 OpenAI 호환/v1/embeddings 엔드포인트를 사용하므로, Jina뿐만 아니라 이 인터페이스를 제공하는 모든 제공자와 함께 작동합니다.
제공자 예시 — 세 변수를 설정하여 전환하세요:
검색
Reranker
Reranker는 검색된 문서를 다시 점수 매겨 관련성을 개선합니다. 세 가지 공급자가 지원되며RERANKER_PROVIDER를 통해 선택하거나 시스템이 사용 가능한 API 키에서 자동 감지하도록 할 수 있습니다.
Jina는JINA_API_KEY를 사용합니다 (위의 Web Tools에서). OpenAI는LLM_API_KEY/LLM_BASE_URL을 재사용합니다 — 추가 키가 필요하지 않습니다. Cohere는 자체COHERE_API_KEY가 필요합니다.
Reranker는 선택 사항입니다 — 지식 베이스 검색은 fusion 점수 매기기를 사용하여 이 없이도 작동합니다. Embedding은 지식 베이스 기능에 권장됩니다.
벡터 저장소
코드 실행
보안:local모드는 AI가 생성한 코드를 호스트에서 직접 실행합니다. 인터넷 공개 또는 다중 사용자 배포의 경우, 항상CODE_EXEC_BACKEND=docker로 설정하세요.
도구 아티팩트
도구 실행(코드 실행, 템플릿 렌더링, 이미지 생성)으로 생성된 파일의 크기 제한입니다.문서 처리 (선택사항)
업로드된 PDF/DOCX 파일이 LLM 사용을 위해 어떻게 처리되는지를 제어합니다. 비전 기능이 있는 모델(GPT-4o, Claude 3/4, Gemini)은 더 높은 충실도를 위해 PDF 페이지를 렌더링된 이미지로 받을 수 있습니다.
참고: 모델별 비전 지원은 관리자 → 모델의 supports_vision 토글을 통해 구성됩니다. 명시적으로 설정되지 않으면 시스템이 모델 이름에서 비전 기능을 자동으로 감지합니다.
이미지 생성 (선택사항)
Email (SMTP) (권장)
SMTP_HOST, SMTP_USER, SMTP_PASS가 모두 설정되면 email_send 내장 도구를 자동으로 등록합니다.
커넥터
Platform
워크플로우 실행 보관
오래된 워크플로우 실행을 자동으로 정리하는 백그라운드 작업입니다. 워크플로우 설정 UI에서 구성한 워크플로우별 재정의가 이러한 전역 기본값보다 우선합니다.채널 확인 요청 만료
FeishuGateHook 또는 Approval Playground와 같은 채널 hook에서 생성된 대기 중인 승인 요청을 오래된 것으로 표시하는 백그라운드 sweeper입니다. 나중에 잊혀진 카드를 클릭해도 이미 해제된 agent 상태가 뒤집히지 않도록 합니다.
OAuth (선택 사항)
공급자에 대해CLIENT_ID와 CLIENT_SECRET이 모두 설정되면 로그인 페이지에 해당 OAuth 버튼이 자동으로 표시됩니다.
프로덕션 = 로컬에서는 선택 사항(기본값 작동), 하지만 인터넷에 노출된 배포의 경우 필수입니다.
각 제공자에 등록할 OAuth 콜백 URL
백엔드는 콜백 URL을 다음과 같이 구성합니다:{API_BASE_URL}/api/auth/oauth/{provider}/callback
Cloudflare Tunnel (선택사항)
Cloudflare의 네트워크를 통해 모든 트래픽을 라우팅하여 포트를 직접 노출하지 않습니다. Nginx, SSL 인증서 및 열린 방화벽 규칙의 필요성을 제거합니다. 설정 지침은 프로덕션 배포 섹션을 참조하세요.분석 (선택사항)
모든 분석 제공자는 선택사항입니다. 원하는 조합으로 설정하면 모든 활성 제공자가 동시에 로드됩니다. 분석을 완전히 비활성화하려면 모두 비워두세요(로컬 개발에 권장).
모든 NEXT_PUBLIC_* 분석 변수는 빌드 시간 변수입니다 — 변경사항을 적용하려면 프론트엔드를 다시 빌드해야 합니다.
Stripe 결제 (선택사항)
Stripe는 Pro 구독을 지원합니다. 세 변수를 모두 비워두면 결제 기능이 비활성화되며, FIM One의 나머지 기능은 정상 작동합니다.STRIPE_SECRET_KEY와 STRIPE_WEBHOOK_SECRET을 함께 설정해야 합니다. 부분적인 설정은 첫 사용 시 오류를 발생시킵니다.