change the parameter!
This commit is contained in:
parent
1e97ec693a
commit
72e87eb702
7 changed files with 17 additions and 50 deletions
42
.env.example
42
.env.example
|
|
@ -1,38 +1,4 @@
|
||||||
# make one like so https://docs.langflow.org/api-keys-and-authentication#langflow-secret-key
|
# Ingestion Configuration
|
||||||
LANGFLOW_SECRET_KEY=
|
# Set to true to disable Langflow ingestion and use traditional OpenRAG processor
|
||||||
# flow ids for chat and ingestion flows
|
# If unset or false, Langflow pipeline will be used (default: upload -> ingest -> delete)
|
||||||
LANGFLOW_CHAT_FLOW_ID=1098eea1-6649-4e1d-aed1-b77249fb8dd0
|
DISABLE_INGEST_WITH_LANGFLOW=false
|
||||||
LANGFLOW_INGEST_FLOW_ID=5488df7c-b93f-4f87-a446-b67028bc0813
|
|
||||||
# must match the hashed password in secureconfig, must change for secure deployment!!!
|
|
||||||
OPENSEARCH_PASSWORD=
|
|
||||||
# make here https://console.cloud.google.com/apis/credentials
|
|
||||||
GOOGLE_OAUTH_CLIENT_ID=
|
|
||||||
GOOGLE_OAUTH_CLIENT_SECRET=
|
|
||||||
# Azure app registration credentials for SharePoint/OneDrive
|
|
||||||
MICROSOFT_GRAPH_OAUTH_CLIENT_ID=
|
|
||||||
MICROSOFT_GRAPH_OAUTH_CLIENT_SECRET=
|
|
||||||
# OPTIONAL: dns routable from google (etc.) to handle continous ingest (something like ngrok works). This enables continous ingestion
|
|
||||||
WEBHOOK_BASE_URL=
|
|
||||||
|
|
||||||
OPENAI_API_KEY=
|
|
||||||
|
|
||||||
AWS_ACCESS_KEY_ID=
|
|
||||||
AWS_SECRET_ACCESS_KEY=
|
|
||||||
|
|
||||||
# OPTIONAL url for openrag link to langflow in the UI
|
|
||||||
LANGFLOW_PUBLIC_URL=
|
|
||||||
|
|
||||||
# Langflow auth
|
|
||||||
LANGFLOW_AUTO_LOGIN=False
|
|
||||||
LANGFLOW_SUPERUSER=
|
|
||||||
LANGFLOW_SUPERUSER_PASSWORD=
|
|
||||||
LANGFLOW_NEW_USER_IS_ACTIVE=False
|
|
||||||
LANGFLOW_ENABLE_SUPERUSER_CLI=False
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Ingestion Mode Configuration
|
|
||||||
# Options: "langflow" (default) or "openrag"
|
|
||||||
# - langflow: Use Langflow pipeline for document ingestion (upload -> ingest -> delete)
|
|
||||||
# - openrag: Use traditional OpenRAG processor for document ingestion
|
|
||||||
INGEST_MODE=langflow
|
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ RUN npm install
|
||||||
COPY frontend/ ./
|
COPY frontend/ ./
|
||||||
|
|
||||||
# Build frontend
|
# Build frontend
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|
||||||
# Expose frontend port
|
# Expose frontend port
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
|
|
|
||||||
|
|
@ -47,9 +47,9 @@ cp .env.example .env
|
||||||
- `LANGFLOW_INGEST_FLOW_ID`: ID of your Langflow ingestion flow
|
- `LANGFLOW_INGEST_FLOW_ID`: ID of your Langflow ingestion flow
|
||||||
|
|
||||||
**Ingestion Configuration:**
|
**Ingestion Configuration:**
|
||||||
- `INGEST_MODE`: Controls how default documents are ingested (default: `langflow`)
|
- `DISABLE_INGEST_WITH_LANGFLOW`: Disable Langflow ingestion pipeline (default: `false`)
|
||||||
- `langflow`: Uses Langflow pipeline for document ingestion (upload → ingest → delete)
|
- `false` or unset: Uses Langflow pipeline (upload → ingest → delete)
|
||||||
- `openrag`: Uses traditional OpenRAG processor for document ingestion
|
- `true`: Uses traditional OpenRAG processor for document ingestion
|
||||||
|
|
||||||
**Optional:**
|
**Optional:**
|
||||||
- `LANGFLOW_PUBLIC_URL`: Public URL for Langflow (default: `http://localhost:7860`)
|
- `LANGFLOW_PUBLIC_URL`: Public URL for Langflow (default: `http://localhost:7860`)
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ services:
|
||||||
- LANGFLOW_SUPERUSER_PASSWORD=${LANGFLOW_SUPERUSER_PASSWORD}
|
- LANGFLOW_SUPERUSER_PASSWORD=${LANGFLOW_SUPERUSER_PASSWORD}
|
||||||
- LANGFLOW_CHAT_FLOW_ID=${LANGFLOW_CHAT_FLOW_ID}
|
- LANGFLOW_CHAT_FLOW_ID=${LANGFLOW_CHAT_FLOW_ID}
|
||||||
- LANGFLOW_INGEST_FLOW_ID=${LANGFLOW_INGEST_FLOW_ID}
|
- LANGFLOW_INGEST_FLOW_ID=${LANGFLOW_INGEST_FLOW_ID}
|
||||||
- INGEST_MODE=${INGEST_MODE:-langflow}
|
- DISABLE_INGEST_WITH_LANGFLOW=${DISABLE_INGEST_WITH_LANGFLOW:-false}
|
||||||
- OPENSEARCH_PORT=9200
|
- OPENSEARCH_PORT=9200
|
||||||
- OPENSEARCH_USERNAME=admin
|
- OPENSEARCH_USERNAME=admin
|
||||||
- OPENSEARCH_PASSWORD=${OPENSEARCH_PASSWORD}
|
- OPENSEARCH_PASSWORD=${OPENSEARCH_PASSWORD}
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,7 @@ services:
|
||||||
- LANGFLOW_SUPERUSER_PASSWORD=${LANGFLOW_SUPERUSER_PASSWORD}
|
- LANGFLOW_SUPERUSER_PASSWORD=${LANGFLOW_SUPERUSER_PASSWORD}
|
||||||
- LANGFLOW_CHAT_FLOW_ID=${LANGFLOW_CHAT_FLOW_ID}
|
- LANGFLOW_CHAT_FLOW_ID=${LANGFLOW_CHAT_FLOW_ID}
|
||||||
- LANGFLOW_INGEST_FLOW_ID=${LANGFLOW_INGEST_FLOW_ID}
|
- LANGFLOW_INGEST_FLOW_ID=${LANGFLOW_INGEST_FLOW_ID}
|
||||||
|
- DISABLE_INGEST_WITH_LANGFLOW=${DISABLE_INGEST_WITH_LANGFLOW:-false}
|
||||||
- OPENSEARCH_PORT=9200
|
- OPENSEARCH_PORT=9200
|
||||||
- OPENSEARCH_USERNAME=admin
|
- OPENSEARCH_USERNAME=admin
|
||||||
- OPENSEARCH_PASSWORD=${OPENSEARCH_PASSWORD}
|
- OPENSEARCH_PASSWORD=${OPENSEARCH_PASSWORD}
|
||||||
|
|
|
||||||
|
|
@ -45,8 +45,8 @@ SESSION_SECRET = os.getenv("SESSION_SECRET", "your-secret-key-change-in-producti
|
||||||
GOOGLE_OAUTH_CLIENT_ID = os.getenv("GOOGLE_OAUTH_CLIENT_ID")
|
GOOGLE_OAUTH_CLIENT_ID = os.getenv("GOOGLE_OAUTH_CLIENT_ID")
|
||||||
GOOGLE_OAUTH_CLIENT_SECRET = os.getenv("GOOGLE_OAUTH_CLIENT_SECRET")
|
GOOGLE_OAUTH_CLIENT_SECRET = os.getenv("GOOGLE_OAUTH_CLIENT_SECRET")
|
||||||
|
|
||||||
# Ingestion mode configuration
|
# Ingestion configuration
|
||||||
INGEST_MODE = os.getenv("INGEST_MODE", "langflow").lower() # "langflow" or "openrag"
|
DISABLE_INGEST_WITH_LANGFLOW = os.getenv("DISABLE_INGEST_WITH_LANGFLOW", "false").lower() in ("true", "1", "yes")
|
||||||
|
|
||||||
|
|
||||||
def is_no_auth_mode():
|
def is_no_auth_mode():
|
||||||
|
|
|
||||||
10
src/main.py
10
src/main.py
|
|
@ -41,9 +41,9 @@ from auth_middleware import optional_auth, require_auth
|
||||||
|
|
||||||
# Configuration and setup
|
# Configuration and setup
|
||||||
from config.settings import (
|
from config.settings import (
|
||||||
|
DISABLE_INGEST_WITH_LANGFLOW,
|
||||||
INDEX_BODY,
|
INDEX_BODY,
|
||||||
INDEX_NAME,
|
INDEX_NAME,
|
||||||
INGEST_MODE,
|
|
||||||
SESSION_SECRET,
|
SESSION_SECRET,
|
||||||
clients,
|
clients,
|
||||||
is_no_auth_mode,
|
is_no_auth_mode,
|
||||||
|
|
@ -227,7 +227,7 @@ async def init_index_when_ready():
|
||||||
async def ingest_default_documents_when_ready(services):
|
async def ingest_default_documents_when_ready(services):
|
||||||
"""Scan the local documents folder and ingest files like a non-auth upload."""
|
"""Scan the local documents folder and ingest files like a non-auth upload."""
|
||||||
try:
|
try:
|
||||||
logger.info("Ingesting default documents when ready", ingest_mode=INGEST_MODE)
|
logger.info("Ingesting default documents when ready", disable_langflow_ingest=DISABLE_INGEST_WITH_LANGFLOW)
|
||||||
base_dir = os.path.abspath(os.path.join(os.getcwd(), "documents"))
|
base_dir = os.path.abspath(os.path.join(os.getcwd(), "documents"))
|
||||||
if not os.path.isdir(base_dir):
|
if not os.path.isdir(base_dir):
|
||||||
logger.info(
|
logger.info(
|
||||||
|
|
@ -249,10 +249,10 @@ async def ingest_default_documents_when_ready(services):
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
if INGEST_MODE == "langflow":
|
if DISABLE_INGEST_WITH_LANGFLOW:
|
||||||
await _ingest_default_documents_langflow(services, file_paths)
|
|
||||||
else:
|
|
||||||
await _ingest_default_documents_openrag(services, file_paths)
|
await _ingest_default_documents_openrag(services, file_paths)
|
||||||
|
else:
|
||||||
|
await _ingest_default_documents_langflow(services, file_paths)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error("Default documents ingestion failed", error=str(e))
|
logger.error("Default documents ingestion failed", error=str(e))
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue