Merge branch 'main' into add-globe-icon-text-html-url
This commit is contained in:
commit
5db01049bd
18 changed files with 5783 additions and 614 deletions
|
|
@ -8,6 +8,7 @@ LANGFLOW_SECRET_KEY=
|
||||||
# flow ids for chat and ingestion flows
|
# flow ids for chat and ingestion flows
|
||||||
LANGFLOW_CHAT_FLOW_ID=1098eea1-6649-4e1d-aed1-b77249fb8dd0
|
LANGFLOW_CHAT_FLOW_ID=1098eea1-6649-4e1d-aed1-b77249fb8dd0
|
||||||
LANGFLOW_INGEST_FLOW_ID=5488df7c-b93f-4f87-a446-b67028bc0813
|
LANGFLOW_INGEST_FLOW_ID=5488df7c-b93f-4f87-a446-b67028bc0813
|
||||||
|
LANGFLOW_URL_INGEST_FLOW_ID=72c3d17c-2dac-4a73-b48a-6518473d7830
|
||||||
# Ingest flow using docling
|
# Ingest flow using docling
|
||||||
# LANGFLOW_INGEST_FLOW_ID=1402618b-e6d1-4ff2-9a11-d6ce71186915
|
# LANGFLOW_INGEST_FLOW_ID=1402618b-e6d1-4ff2-9a11-d6ce71186915
|
||||||
NUDGES_FLOW_ID=ebc01d31-1976-46ce-a385-b0240327226c
|
NUDGES_FLOW_ID=ebc01d31-1976-46ce-a385-b0240327226c
|
||||||
|
|
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -17,6 +17,7 @@ wheels/
|
||||||
|
|
||||||
1001*.pdf
|
1001*.pdf
|
||||||
*.json
|
*.json
|
||||||
|
!flows/*.json
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
config/
|
config/
|
||||||
|
|
|
||||||
|
|
@ -1,49 +1,5 @@
|
||||||
FROM python:3.12-slim
|
FROM langflowai/langflow-nightly:1.6.3.dev0
|
||||||
|
|
||||||
# Set environment variables
|
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
|
||||||
ENV PYTHONUNBUFFERED=1
|
|
||||||
ENV RUSTFLAGS="--cfg reqwest_unstable"
|
|
||||||
|
|
||||||
# Accept build arguments for git repository and branch
|
|
||||||
ARG GIT_REPO=https://github.com/langflow-ai/langflow.git
|
|
||||||
ARG GIT_BRANCH=test-openai-responses
|
|
||||||
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
# Install system dependencies
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
build-essential \
|
|
||||||
curl \
|
|
||||||
git \
|
|
||||||
ca-certificates \
|
|
||||||
gnupg \
|
|
||||||
npm \
|
|
||||||
rustc cargo pkg-config libssl-dev \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# Install uv for faster Python package management
|
|
||||||
RUN pip install uv
|
|
||||||
|
|
||||||
# Clone the repository and checkout the specified branch
|
|
||||||
RUN git clone --depth 1 --branch ${GIT_BRANCH} ${GIT_REPO} /app
|
|
||||||
|
|
||||||
# Install backend dependencies
|
|
||||||
RUN uv sync --frozen --no-install-project --no-editable --extra postgresql
|
|
||||||
|
|
||||||
# Build frontend
|
|
||||||
WORKDIR /app/src/frontend
|
|
||||||
RUN NODE_OPTIONS=--max_old_space_size=4096 npm ci && \
|
|
||||||
NODE_OPTIONS=--max_old_space_size=4096 npm run build && \
|
|
||||||
mkdir -p /app/src/backend/base/langflow/frontend && \
|
|
||||||
cp -r build/* /app/src/backend/base/langflow/frontend/
|
|
||||||
|
|
||||||
# Return to app directory and install the project
|
|
||||||
WORKDIR /app
|
|
||||||
RUN uv sync --frozen --no-dev --no-editable --extra postgresql
|
|
||||||
|
|
||||||
# Expose ports
|
|
||||||
EXPOSE 7860
|
EXPOSE 7860
|
||||||
|
|
||||||
# Start the backend server
|
CMD ["langflow", "run", "--host", "0.0.0.0", "--port", "7860"]
|
||||||
CMD ["uv", "run", "langflow", "run", "--host", "0.0.0.0", "--port", "7860"]
|
|
||||||
|
|
@ -40,10 +40,10 @@ services:
|
||||||
|
|
||||||
openrag-backend:
|
openrag-backend:
|
||||||
image: phact/openrag-backend:${OPENRAG_VERSION:-latest}
|
image: phact/openrag-backend:${OPENRAG_VERSION:-latest}
|
||||||
#build:
|
# build:
|
||||||
#context: .
|
# context: .
|
||||||
#dockerfile: Dockerfile.backend
|
# dockerfile: Dockerfile.backend
|
||||||
container_name: openrag-backend
|
# container_name: openrag-backend
|
||||||
depends_on:
|
depends_on:
|
||||||
- langflow
|
- langflow
|
||||||
environment:
|
environment:
|
||||||
|
|
@ -55,6 +55,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}
|
||||||
|
- LANGFLOW_URL_INGEST_FLOW_ID=${LANGFLOW_URL_INGEST_FLOW_ID}
|
||||||
- DISABLE_INGEST_WITH_LANGFLOW=${DISABLE_INGEST_WITH_LANGFLOW:-false}
|
- DISABLE_INGEST_WITH_LANGFLOW=${DISABLE_INGEST_WITH_LANGFLOW:-false}
|
||||||
- NUDGES_FLOW_ID=${NUDGES_FLOW_ID}
|
- NUDGES_FLOW_ID=${NUDGES_FLOW_ID}
|
||||||
- OPENSEARCH_PORT=9200
|
- OPENSEARCH_PORT=9200
|
||||||
|
|
@ -77,9 +78,9 @@ services:
|
||||||
|
|
||||||
openrag-frontend:
|
openrag-frontend:
|
||||||
image: phact/openrag-frontend:${OPENRAG_VERSION:-latest}
|
image: phact/openrag-frontend:${OPENRAG_VERSION:-latest}
|
||||||
#build:
|
# build:
|
||||||
#context: .
|
# context: .
|
||||||
#dockerfile: Dockerfile.frontend
|
# dockerfile: Dockerfile.frontend
|
||||||
container_name: openrag-frontend
|
container_name: openrag-frontend
|
||||||
depends_on:
|
depends_on:
|
||||||
- openrag-backend
|
- openrag-backend
|
||||||
|
|
@ -92,6 +93,9 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
- ./flows:/app/flows:Z
|
- ./flows:/app/flows:Z
|
||||||
image: phact/openrag-langflow:${LANGFLOW_VERSION:-latest}
|
image: phact/openrag-langflow:${LANGFLOW_VERSION:-latest}
|
||||||
|
# build:
|
||||||
|
# context: .
|
||||||
|
# dockerfile: Dockerfile.langflow
|
||||||
container_name: langflow
|
container_name: langflow
|
||||||
ports:
|
ports:
|
||||||
- "7860:7860"
|
- "7860:7860"
|
||||||
|
|
@ -99,13 +103,23 @@ services:
|
||||||
- OPENAI_API_KEY=${OPENAI_API_KEY}
|
- OPENAI_API_KEY=${OPENAI_API_KEY}
|
||||||
- LANGFLOW_LOAD_FLOWS_PATH=/app/flows
|
- LANGFLOW_LOAD_FLOWS_PATH=/app/flows
|
||||||
- LANGFLOW_SECRET_KEY=${LANGFLOW_SECRET_KEY}
|
- LANGFLOW_SECRET_KEY=${LANGFLOW_SECRET_KEY}
|
||||||
- JWT="dummy"
|
- JWT=None
|
||||||
|
- OWNER=None
|
||||||
|
- OWNER_NAME=None
|
||||||
|
- OWNER_EMAIL=None
|
||||||
|
- CONNECTOR_TYPE=system
|
||||||
- OPENRAG-QUERY-FILTER="{}"
|
- OPENRAG-QUERY-FILTER="{}"
|
||||||
- OPENSEARCH_PASSWORD=${OPENSEARCH_PASSWORD}
|
- OPENSEARCH_PASSWORD=${OPENSEARCH_PASSWORD}
|
||||||
- LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT=JWT,OPENRAG-QUERY-FILTER,OPENSEARCH_PASSWORD
|
- FILENAME=None
|
||||||
|
- MIMETYPE=None
|
||||||
|
- FILESIZE=0
|
||||||
|
- LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT=JWT,OPENRAG-QUERY-FILTER,OPENSEARCH_PASSWORD,OWNER,OWNER_NAME,OWNER_EMAIL,CONNECTOR_TYPE,FILENAME,MIMETYPE,FILESIZE
|
||||||
- LANGFLOW_LOG_LEVEL=DEBUG
|
- LANGFLOW_LOG_LEVEL=DEBUG
|
||||||
- LANGFLOW_AUTO_LOGIN=${LANGFLOW_AUTO_LOGIN}
|
- LANGFLOW_AUTO_LOGIN=${LANGFLOW_AUTO_LOGIN}
|
||||||
- LANGFLOW_SUPERUSER=${LANGFLOW_SUPERUSER}
|
- LANGFLOW_SUPERUSER=${LANGFLOW_SUPERUSER}
|
||||||
- LANGFLOW_SUPERUSER_PASSWORD=${LANGFLOW_SUPERUSER_PASSWORD}
|
- LANGFLOW_SUPERUSER_PASSWORD=${LANGFLOW_SUPERUSER_PASSWORD}
|
||||||
- LANGFLOW_NEW_USER_IS_ACTIVE=${LANGFLOW_NEW_USER_IS_ACTIVE}
|
- LANGFLOW_NEW_USER_IS_ACTIVE=${LANGFLOW_NEW_USER_IS_ACTIVE}
|
||||||
- LANGFLOW_ENABLE_SUPERUSER_CLI=${LANGFLOW_ENABLE_SUPERUSER_CLI}
|
- LANGFLOW_ENABLE_SUPERUSER_CLI=${LANGFLOW_ENABLE_SUPERUSER_CLI}
|
||||||
|
# - DEFAULT_FOLDER_NAME=OpenRAG
|
||||||
|
- HIDE_GETTING_STARTED_PROGRESS=true
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ services:
|
||||||
# build:
|
# build:
|
||||||
# context: .
|
# context: .
|
||||||
# dockerfile: Dockerfile.backend
|
# dockerfile: Dockerfile.backend
|
||||||
container_name: openrag-backend
|
# container_name: openrag-backend
|
||||||
depends_on:
|
depends_on:
|
||||||
- langflow
|
- langflow
|
||||||
environment:
|
environment:
|
||||||
|
|
@ -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}
|
||||||
|
- LANGFLOW_URL_INGEST_FLOW_ID=${LANGFLOW_URL_INGEST_FLOW_ID}
|
||||||
- DISABLE_INGEST_WITH_LANGFLOW=${DISABLE_INGEST_WITH_LANGFLOW:-false}
|
- DISABLE_INGEST_WITH_LANGFLOW=${DISABLE_INGEST_WITH_LANGFLOW:-false}
|
||||||
- NUDGES_FLOW_ID=${NUDGES_FLOW_ID}
|
- NUDGES_FLOW_ID=${NUDGES_FLOW_ID}
|
||||||
- OPENSEARCH_PORT=9200
|
- OPENSEARCH_PORT=9200
|
||||||
|
|
@ -80,7 +81,7 @@ services:
|
||||||
# build:
|
# build:
|
||||||
# context: .
|
# context: .
|
||||||
# dockerfile: Dockerfile.frontend
|
# dockerfile: Dockerfile.frontend
|
||||||
# #dockerfile: Dockerfile.frontend
|
#dockerfile: Dockerfile.frontend
|
||||||
container_name: openrag-frontend
|
container_name: openrag-frontend
|
||||||
depends_on:
|
depends_on:
|
||||||
- openrag-backend
|
- openrag-backend
|
||||||
|
|
@ -109,11 +110,16 @@ services:
|
||||||
- OWNER_EMAIL=None
|
- OWNER_EMAIL=None
|
||||||
- CONNECTOR_TYPE=system
|
- CONNECTOR_TYPE=system
|
||||||
- OPENRAG-QUERY-FILTER="{}"
|
- OPENRAG-QUERY-FILTER="{}"
|
||||||
|
- FILENAME=None
|
||||||
|
- MIMETYPE=None
|
||||||
|
- FILESIZE=0
|
||||||
- OPENSEARCH_PASSWORD=${OPENSEARCH_PASSWORD}
|
- OPENSEARCH_PASSWORD=${OPENSEARCH_PASSWORD}
|
||||||
- LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT=JWT,OPENRAG-QUERY-FILTER,OPENSEARCH_PASSWORD,OWNER,OWNER_NAME,OWNER_EMAIL,CONNECTOR_TYPE
|
- LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT=JWT,OPENRAG-QUERY-FILTER,OPENSEARCH_PASSWORD,OWNER,OWNER_NAME,OWNER_EMAIL,CONNECTOR_TYPE,FILENAME,MIMETYPE,FILESIZE
|
||||||
- LANGFLOW_LOG_LEVEL=DEBUG
|
- LANGFLOW_LOG_LEVEL=DEBUG
|
||||||
- LANGFLOW_AUTO_LOGIN=${LANGFLOW_AUTO_LOGIN}
|
- LANGFLOW_AUTO_LOGIN=${LANGFLOW_AUTO_LOGIN}
|
||||||
- LANGFLOW_SUPERUSER=${LANGFLOW_SUPERUSER}
|
- LANGFLOW_SUPERUSER=${LANGFLOW_SUPERUSER}
|
||||||
- LANGFLOW_SUPERUSER_PASSWORD=${LANGFLOW_SUPERUSER_PASSWORD}
|
- LANGFLOW_SUPERUSER_PASSWORD=${LANGFLOW_SUPERUSER_PASSWORD}
|
||||||
- LANGFLOW_NEW_USER_IS_ACTIVE=${LANGFLOW_NEW_USER_IS_ACTIVE}
|
- LANGFLOW_NEW_USER_IS_ACTIVE=${LANGFLOW_NEW_USER_IS_ACTIVE}
|
||||||
- LANGFLOW_ENABLE_SUPERUSER_CLI=${LANGFLOW_ENABLE_SUPERUSER_CLI}
|
- LANGFLOW_ENABLE_SUPERUSER_CLI=${LANGFLOW_ENABLE_SUPERUSER_CLI}
|
||||||
|
# - DEFAULT_FOLDER_NAME=OpenRAG
|
||||||
|
- HIDE_GETTING_STARTED_PROGRESS=true
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -144,6 +144,8 @@
|
||||||
"targetHandle": "{œfieldNameœ:œagent_llmœ,œidœ:œAgent-crjWfœ,œinputTypesœ:[œLanguageModelœ],œtypeœ:œstrœ}"
|
"targetHandle": "{œfieldNameœ:œagent_llmœ,œidœ:œAgent-crjWfœ,œinputTypesœ:[œLanguageModelœ],œtypeœ:œstrœ}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"animated": false,
|
||||||
|
"className": "",
|
||||||
"data": {
|
"data": {
|
||||||
"sourceHandle": {
|
"sourceHandle": {
|
||||||
"dataType": "TextInput",
|
"dataType": "TextInput",
|
||||||
|
|
@ -163,6 +165,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"id": "xy-edge__TextInput-aHsQb{œdataTypeœ:œTextInputœ,œidœ:œTextInput-aHsQbœ,œnameœ:œtextœ,œoutput_typesœ:[œMessageœ]}-OpenSearch-iYfjf{œfieldNameœ:œfilter_expressionœ,œidœ:œOpenSearch-iYfjfœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
|
"id": "xy-edge__TextInput-aHsQb{œdataTypeœ:œTextInputœ,œidœ:œTextInput-aHsQbœ,œnameœ:œtextœ,œoutput_typesœ:[œMessageœ]}-OpenSearch-iYfjf{œfieldNameœ:œfilter_expressionœ,œidœ:œOpenSearch-iYfjfœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
|
||||||
|
"selected": false,
|
||||||
"source": "TextInput-aHsQb",
|
"source": "TextInput-aHsQb",
|
||||||
"sourceHandle": "{œdataTypeœ:œTextInputœ,œidœ:œTextInput-aHsQbœ,œnameœ:œtextœ,œoutput_typesœ:[œMessageœ]}",
|
"sourceHandle": "{œdataTypeœ:œTextInputœ,œidœ:œTextInput-aHsQbœ,œnameœ:œtextœ,œoutput_typesœ:[œMessageœ]}",
|
||||||
"target": "OpenSearch-iYfjf",
|
"target": "OpenSearch-iYfjf",
|
||||||
|
|
@ -727,7 +730,7 @@
|
||||||
],
|
],
|
||||||
"frozen": false,
|
"frozen": false,
|
||||||
"icon": "OpenSearch",
|
"icon": "OpenSearch",
|
||||||
"last_updated": "2025-10-02T20:05:34.814Z",
|
"last_updated": "2025-10-04T05:41:33.344Z",
|
||||||
"legacy": false,
|
"legacy": false,
|
||||||
"lf_version": "1.6.0",
|
"lf_version": "1.6.0",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
|
|
@ -1381,7 +1384,7 @@
|
||||||
],
|
],
|
||||||
"frozen": false,
|
"frozen": false,
|
||||||
"icon": "binary",
|
"icon": "binary",
|
||||||
"last_updated": "2025-10-02T20:05:34.815Z",
|
"last_updated": "2025-10-04T05:41:33.345Z",
|
||||||
"legacy": false,
|
"legacy": false,
|
||||||
"lf_version": "1.6.0",
|
"lf_version": "1.6.0",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
|
|
@ -1660,7 +1663,7 @@
|
||||||
},
|
},
|
||||||
"position": {
|
"position": {
|
||||||
"x": 727.4791597769406,
|
"x": 727.4791597769406,
|
||||||
"y": 518.0820551650631
|
"y": 416.82609966052854
|
||||||
},
|
},
|
||||||
"selected": false,
|
"selected": false,
|
||||||
"type": "genericNode"
|
"type": "genericNode"
|
||||||
|
|
@ -1706,7 +1709,7 @@
|
||||||
],
|
],
|
||||||
"frozen": false,
|
"frozen": false,
|
||||||
"icon": "bot",
|
"icon": "bot",
|
||||||
"last_updated": "2025-10-02T20:05:34.872Z",
|
"last_updated": "2025-10-04T05:41:33.399Z",
|
||||||
"legacy": false,
|
"legacy": false,
|
||||||
"lf_version": "1.6.0",
|
"lf_version": "1.6.0",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
|
|
@ -2245,7 +2248,7 @@
|
||||||
],
|
],
|
||||||
"frozen": false,
|
"frozen": false,
|
||||||
"icon": "brain-circuit",
|
"icon": "brain-circuit",
|
||||||
"last_updated": "2025-10-02T20:05:34.815Z",
|
"last_updated": "2025-10-04T05:41:33.347Z",
|
||||||
"legacy": false,
|
"legacy": false,
|
||||||
"lf_version": "1.6.0",
|
"lf_version": "1.6.0",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
|
|
@ -2551,7 +2554,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"viewport": {
|
"viewport": {
|
||||||
"x": -237.0727605845459,
|
"x": -149.48015964664273,
|
||||||
"y": 154.6885920024542,
|
"y": 154.6885920024542,
|
||||||
"zoom": 0.602433700773958
|
"zoom": 0.602433700773958
|
||||||
}
|
}
|
||||||
|
|
@ -2560,7 +2563,7 @@
|
||||||
"endpoint_name": null,
|
"endpoint_name": null,
|
||||||
"id": "1098eea1-6649-4e1d-aed1-b77249fb8dd0",
|
"id": "1098eea1-6649-4e1d-aed1-b77249fb8dd0",
|
||||||
"is_component": false,
|
"is_component": false,
|
||||||
"last_tested_version": "1.6.0",
|
"last_tested_version": "1.6.3.dev0",
|
||||||
"name": "OpenRAG Open Search Agent",
|
"name": "OpenRAG Open Search Agent",
|
||||||
"tags": [
|
"tags": [
|
||||||
"assistants",
|
"assistants",
|
||||||
|
|
|
||||||
3616
flows/openrag_url_mcp.json
Normal file
3616
flows/openrag_url_mcp.json
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -25,6 +25,11 @@ import {
|
||||||
} from "@/components/ui/card";
|
} from "@/components/ui/card";
|
||||||
import { Input } from "@/components/ui/input";
|
import { Input } from "@/components/ui/input";
|
||||||
import { Label } from "@/components/ui/label";
|
import { Label } from "@/components/ui/label";
|
||||||
|
import {
|
||||||
|
Tooltip,
|
||||||
|
TooltipContent,
|
||||||
|
TooltipTrigger,
|
||||||
|
} from "@/components/ui/tooltip";
|
||||||
import {
|
import {
|
||||||
Select,
|
Select,
|
||||||
SelectContent,
|
SelectContent,
|
||||||
|
|
@ -1027,16 +1032,16 @@ function KnowledgeSourcesPage() {
|
||||||
}
|
}
|
||||||
onValueChange={handleEmbeddingModelChange}
|
onValueChange={handleEmbeddingModelChange}
|
||||||
>
|
>
|
||||||
{/* <Tooltip>
|
<Tooltip>
|
||||||
<TooltipTrigger> */}
|
<TooltipTrigger asChild>
|
||||||
<SelectTrigger disabled id="embedding-model-select">
|
<SelectTrigger disabled id="embedding-model-select">
|
||||||
<SelectValue placeholder="Select an embedding model" />
|
<SelectValue placeholder="Select an embedding model" />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
{/* <TooltipContent>
|
</TooltipTrigger>
|
||||||
Locked to keep embeddings consistent
|
<TooltipContent>
|
||||||
</TooltipContent>
|
Locked to keep embeddings consistent
|
||||||
</TooltipTrigger>
|
</TooltipContent>
|
||||||
</Tooltip> */}
|
</Tooltip>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
<ModelSelectItems
|
<ModelSelectItems
|
||||||
models={modelsData?.embedding_models}
|
models={modelsData?.embedding_models}
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ export const PickerHeader = ({
|
||||||
className="bg-foreground text-background hover:bg-foreground/90 font-semibold"
|
className="bg-foreground text-background hover:bg-foreground/90 font-semibold"
|
||||||
>
|
>
|
||||||
<Plus className="h-4 w-4" />
|
<Plus className="h-4 w-4" />
|
||||||
{isPickerOpen ? "Opening Picker..." : "Add Files"}
|
Add Files
|
||||||
</Button>
|
</Button>
|
||||||
<div className="text-xs text-muted-foreground pt-4">
|
<div className="text-xs text-muted-foreground pt-4">
|
||||||
csv, json, pdf,{" "}
|
csv, json, pdf,{" "}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[project]
|
[project]
|
||||||
name = "openrag"
|
name = "openrag"
|
||||||
version = "0.1.14.dev1"
|
version = "0.1.14.dev3"
|
||||||
description = "Add your description here"
|
description = "Add your description here"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.13"
|
requires-python = ">=3.13"
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ _legacy_flow_id = os.getenv("FLOW_ID")
|
||||||
|
|
||||||
LANGFLOW_CHAT_FLOW_ID = os.getenv("LANGFLOW_CHAT_FLOW_ID") or _legacy_flow_id
|
LANGFLOW_CHAT_FLOW_ID = os.getenv("LANGFLOW_CHAT_FLOW_ID") or _legacy_flow_id
|
||||||
LANGFLOW_INGEST_FLOW_ID = os.getenv("LANGFLOW_INGEST_FLOW_ID")
|
LANGFLOW_INGEST_FLOW_ID = os.getenv("LANGFLOW_INGEST_FLOW_ID")
|
||||||
|
LANGFLOW_URL_INGEST_FLOW_ID = os.getenv("LANGFLOW_URL_INGEST_FLOW_ID")
|
||||||
NUDGES_FLOW_ID = os.getenv("NUDGES_FLOW_ID")
|
NUDGES_FLOW_ID = os.getenv("NUDGES_FLOW_ID")
|
||||||
|
|
||||||
if _legacy_flow_id and not os.getenv("LANGFLOW_CHAT_FLOW_ID"):
|
if _legacy_flow_id and not os.getenv("LANGFLOW_CHAT_FLOW_ID"):
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
from config.settings import (
|
from config.settings import (
|
||||||
DISABLE_INGEST_WITH_LANGFLOW,
|
DISABLE_INGEST_WITH_LANGFLOW,
|
||||||
|
LANGFLOW_URL_INGEST_FLOW_ID,
|
||||||
NUDGES_FLOW_ID,
|
NUDGES_FLOW_ID,
|
||||||
LANGFLOW_URL,
|
LANGFLOW_URL,
|
||||||
LANGFLOW_CHAT_FLOW_ID,
|
LANGFLOW_CHAT_FLOW_ID,
|
||||||
|
|
@ -116,9 +117,11 @@ class FlowsService:
|
||||||
flow_id = LANGFLOW_CHAT_FLOW_ID
|
flow_id = LANGFLOW_CHAT_FLOW_ID
|
||||||
elif flow_type == "ingest":
|
elif flow_type == "ingest":
|
||||||
flow_id = LANGFLOW_INGEST_FLOW_ID
|
flow_id = LANGFLOW_INGEST_FLOW_ID
|
||||||
|
elif flow_type == "url_ingest":
|
||||||
|
flow_id = LANGFLOW_URL_INGEST_FLOW_ID
|
||||||
else:
|
else:
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
"flow_type must be either 'nudges', 'retrieval', or 'ingest'"
|
"flow_type must be either 'nudges', 'retrieval', 'ingest', or 'url_ingest'"
|
||||||
)
|
)
|
||||||
|
|
||||||
if not flow_id:
|
if not flow_id:
|
||||||
|
|
@ -291,6 +294,13 @@ class FlowsService:
|
||||||
"llm_name": None, # Ingestion flow might not have LLM
|
"llm_name": None, # Ingestion flow might not have LLM
|
||||||
"llm_text_name": None,
|
"llm_text_name": None,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "url_ingest",
|
||||||
|
"flow_id": LANGFLOW_URL_INGEST_FLOW_ID,
|
||||||
|
"embedding_name": OPENAI_EMBEDDING_COMPONENT_DISPLAY_NAME,
|
||||||
|
"llm_name": None,
|
||||||
|
"llm_text_name": None,
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
results = []
|
results = []
|
||||||
|
|
@ -716,6 +726,10 @@ class FlowsService:
|
||||||
"name": "ingest",
|
"name": "ingest",
|
||||||
"flow_id": LANGFLOW_INGEST_FLOW_ID,
|
"flow_id": LANGFLOW_INGEST_FLOW_ID,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "url_ingest",
|
||||||
|
"flow_id": LANGFLOW_URL_INGEST_FLOW_ID,
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
# Determine target component IDs based on provider
|
# Determine target component IDs based on provider
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,7 @@ class LangflowFileService:
|
||||||
owner_name: Optional[str] = None,
|
owner_name: Optional[str] = None,
|
||||||
owner_email: Optional[str] = None,
|
owner_email: Optional[str] = None,
|
||||||
connector_type: Optional[str] = None,
|
connector_type: Optional[str] = None,
|
||||||
|
file_tuples: Optional[list[tuple[str, str, str]]] = None,
|
||||||
) -> Dict[str, Any]:
|
) -> Dict[str, Any]:
|
||||||
"""
|
"""
|
||||||
Trigger the ingestion flow with provided file paths.
|
Trigger the ingestion flow with provided file paths.
|
||||||
|
|
@ -86,7 +87,9 @@ class LangflowFileService:
|
||||||
|
|
||||||
# Pass files via tweaks to File component (File-PSU37 from the flow)
|
# Pass files via tweaks to File component (File-PSU37 from the flow)
|
||||||
if file_paths:
|
if file_paths:
|
||||||
tweaks["File-PSU37"] = {"path": file_paths}
|
tweaks["DoclingRemote-Dp3PX"] = {"path": file_paths}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Pass JWT token via tweaks using the x-langflow-global-var- pattern
|
# Pass JWT token via tweaks using the x-langflow-global-var- pattern
|
||||||
if jwt_token:
|
if jwt_token:
|
||||||
|
|
@ -129,7 +132,8 @@ class LangflowFileService:
|
||||||
list(tweaks.keys()) if isinstance(tweaks, dict) else None,
|
list(tweaks.keys()) if isinstance(tweaks, dict) else None,
|
||||||
bool(jwt_token),
|
bool(jwt_token),
|
||||||
)
|
)
|
||||||
|
# To compute the file size in bytes, use len() on the file content (which should be bytes)
|
||||||
|
file_size_bytes = len(file_tuples[0][1]) if file_tuples and len(file_tuples[0]) > 1 else 0
|
||||||
# Avoid logging full payload to prevent leaking sensitive data (e.g., JWT)
|
# Avoid logging full payload to prevent leaking sensitive data (e.g., JWT)
|
||||||
headers={
|
headers={
|
||||||
"X-Langflow-Global-Var-JWT": str(jwt_token),
|
"X-Langflow-Global-Var-JWT": str(jwt_token),
|
||||||
|
|
@ -137,6 +141,9 @@ class LangflowFileService:
|
||||||
"X-Langflow-Global-Var-OWNER_NAME": str(owner_name),
|
"X-Langflow-Global-Var-OWNER_NAME": str(owner_name),
|
||||||
"X-Langflow-Global-Var-OWNER_EMAIL": str(owner_email),
|
"X-Langflow-Global-Var-OWNER_EMAIL": str(owner_email),
|
||||||
"X-Langflow-Global-Var-CONNECTOR_TYPE": str(connector_type),
|
"X-Langflow-Global-Var-CONNECTOR_TYPE": str(connector_type),
|
||||||
|
"X-Langflow-Global-Var-FILENAME": str(file_tuples[0][0]),
|
||||||
|
"X-Langflow-Global-Var-MIMETYPE": str(file_tuples[0][2]),
|
||||||
|
"X-Langflow-Global-Var-FILESIZE": str(file_size_bytes),
|
||||||
}
|
}
|
||||||
logger.info(f"[LF] Headers {headers}")
|
logger.info(f"[LF] Headers {headers}")
|
||||||
logger.info(f"[LF] Payload {payload}")
|
logger.info(f"[LF] Payload {payload}")
|
||||||
|
|
@ -271,6 +278,7 @@ class LangflowFileService:
|
||||||
owner_name=owner_name,
|
owner_name=owner_name,
|
||||||
owner_email=owner_email,
|
owner_email=owner_email,
|
||||||
connector_type=connector_type,
|
connector_type=connector_type,
|
||||||
|
file_tuples=[file_tuple],
|
||||||
)
|
)
|
||||||
logger.debug("[LF] Ingestion completed successfully")
|
logger.debug("[LF] Ingestion completed successfully")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,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}
|
||||||
|
- LANGFLOW_URL_INGEST_FLOW_ID=${LANGFLOW_URL_INGEST_FLOW_ID}
|
||||||
- DISABLE_INGEST_WITH_LANGFLOW=${DISABLE_INGEST_WITH_LANGFLOW:-false}
|
- DISABLE_INGEST_WITH_LANGFLOW=${DISABLE_INGEST_WITH_LANGFLOW:-false}
|
||||||
- NUDGES_FLOW_ID=${NUDGES_FLOW_ID}
|
- NUDGES_FLOW_ID=${NUDGES_FLOW_ID}
|
||||||
- OPENSEARCH_PORT=9200
|
- OPENSEARCH_PORT=9200
|
||||||
|
|
@ -99,13 +100,22 @@ services:
|
||||||
- OPENAI_API_KEY=${OPENAI_API_KEY}
|
- OPENAI_API_KEY=${OPENAI_API_KEY}
|
||||||
- LANGFLOW_LOAD_FLOWS_PATH=/app/flows
|
- LANGFLOW_LOAD_FLOWS_PATH=/app/flows
|
||||||
- LANGFLOW_SECRET_KEY=${LANGFLOW_SECRET_KEY}
|
- LANGFLOW_SECRET_KEY=${LANGFLOW_SECRET_KEY}
|
||||||
- JWT="dummy"
|
- JWT=None
|
||||||
|
- OWNER=None
|
||||||
|
- OWNER_NAME=None
|
||||||
|
- OWNER_EMAIL=None
|
||||||
|
- CONNECTOR_TYPE=system
|
||||||
- OPENRAG-QUERY-FILTER="{}"
|
- OPENRAG-QUERY-FILTER="{}"
|
||||||
- OPENSEARCH_PASSWORD=${OPENSEARCH_PASSWORD}
|
- OPENSEARCH_PASSWORD=${OPENSEARCH_PASSWORD}
|
||||||
- LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT=JWT,OPENRAG-QUERY-FILTER,OPENSEARCH_PASSWORD
|
- FILENAME=None
|
||||||
|
- MIMETYPE=None
|
||||||
|
- FILESIZE=0
|
||||||
|
- LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT=JWT,OPENRAG-QUERY-FILTER,OPENSEARCH_PASSWORD,OWNER,OWNER_NAME,OWNER_EMAIL,CONNECTOR_TYPE,FILENAME,MIMETYPE,FILESIZE
|
||||||
- LANGFLOW_LOG_LEVEL=DEBUG
|
- LANGFLOW_LOG_LEVEL=DEBUG
|
||||||
- LANGFLOW_AUTO_LOGIN=${LANGFLOW_AUTO_LOGIN}
|
- LANGFLOW_AUTO_LOGIN=${LANGFLOW_AUTO_LOGIN}
|
||||||
- LANGFLOW_SUPERUSER=${LANGFLOW_SUPERUSER}
|
- LANGFLOW_SUPERUSER=${LANGFLOW_SUPERUSER}
|
||||||
- LANGFLOW_SUPERUSER_PASSWORD=${LANGFLOW_SUPERUSER_PASSWORD}
|
- LANGFLOW_SUPERUSER_PASSWORD=${LANGFLOW_SUPERUSER_PASSWORD}
|
||||||
- LANGFLOW_NEW_USER_IS_ACTIVE=${LANGFLOW_NEW_USER_IS_ACTIVE}
|
- LANGFLOW_NEW_USER_IS_ACTIVE=${LANGFLOW_NEW_USER_IS_ACTIVE}
|
||||||
- LANGFLOW_ENABLE_SUPERUSER_CLI=${LANGFLOW_ENABLE_SUPERUSER_CLI}
|
- LANGFLOW_ENABLE_SUPERUSER_CLI=${LANGFLOW_ENABLE_SUPERUSER_CLI}
|
||||||
|
# - DEFAULT_FOLDER_NAME=OpenRAG
|
||||||
|
- HIDE_GETTING_STARTED_PROGRESS=true
|
||||||
|
|
|
||||||
|
|
@ -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}
|
||||||
|
- LANGFLOW_URL_INGEST_FLOW_ID=${LANGFLOW_URL_INGEST_FLOW_ID}
|
||||||
- DISABLE_INGEST_WITH_LANGFLOW=${DISABLE_INGEST_WITH_LANGFLOW:-false}
|
- DISABLE_INGEST_WITH_LANGFLOW=${DISABLE_INGEST_WITH_LANGFLOW:-false}
|
||||||
- NUDGES_FLOW_ID=${NUDGES_FLOW_ID}
|
- NUDGES_FLOW_ID=${NUDGES_FLOW_ID}
|
||||||
- OPENSEARCH_PORT=9200
|
- OPENSEARCH_PORT=9200
|
||||||
|
|
@ -99,13 +100,22 @@ services:
|
||||||
- OPENAI_API_KEY=${OPENAI_API_KEY}
|
- OPENAI_API_KEY=${OPENAI_API_KEY}
|
||||||
- LANGFLOW_LOAD_FLOWS_PATH=/app/flows
|
- LANGFLOW_LOAD_FLOWS_PATH=/app/flows
|
||||||
- LANGFLOW_SECRET_KEY=${LANGFLOW_SECRET_KEY}
|
- LANGFLOW_SECRET_KEY=${LANGFLOW_SECRET_KEY}
|
||||||
- JWT="dummy"
|
- JWT=None
|
||||||
|
- OWNER=None
|
||||||
|
- OWNER_NAME=None
|
||||||
|
- OWNER_EMAIL=None
|
||||||
|
- CONNECTOR_TYPE=system
|
||||||
- OPENRAG-QUERY-FILTER="{}"
|
- OPENRAG-QUERY-FILTER="{}"
|
||||||
- OPENSEARCH_PASSWORD=${OPENSEARCH_PASSWORD}
|
- OPENSEARCH_PASSWORD=${OPENSEARCH_PASSWORD}
|
||||||
- LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT=JWT,OPENRAG-QUERY-FILTER,OPENSEARCH_PASSWORD
|
- FILENAME=None
|
||||||
|
- MIMETYPE=None
|
||||||
|
- FILESIZE=0
|
||||||
|
- LANGFLOW_VARIABLES_TO_GET_FROM_ENVIRONMENT=JWT,OPENRAG-QUERY-FILTER,OPENSEARCH_PASSWORD,OWNER,OWNER_NAME,OWNER_EMAIL,CONNECTOR_TYPE,FILENAME,MIMETYPE,FILESIZE
|
||||||
- LANGFLOW_LOG_LEVEL=DEBUG
|
- LANGFLOW_LOG_LEVEL=DEBUG
|
||||||
- LANGFLOW_AUTO_LOGIN=${LANGFLOW_AUTO_LOGIN}
|
- LANGFLOW_AUTO_LOGIN=${LANGFLOW_AUTO_LOGIN}
|
||||||
- LANGFLOW_SUPERUSER=${LANGFLOW_SUPERUSER}
|
- LANGFLOW_SUPERUSER=${LANGFLOW_SUPERUSER}
|
||||||
- LANGFLOW_SUPERUSER_PASSWORD=${LANGFLOW_SUPERUSER_PASSWORD}
|
- LANGFLOW_SUPERUSER_PASSWORD=${LANGFLOW_SUPERUSER_PASSWORD}
|
||||||
- LANGFLOW_NEW_USER_IS_ACTIVE=${LANGFLOW_NEW_USER_IS_ACTIVE}
|
- LANGFLOW_NEW_USER_IS_ACTIVE=${LANGFLOW_NEW_USER_IS_ACTIVE}
|
||||||
- LANGFLOW_ENABLE_SUPERUSER_CLI=${LANGFLOW_ENABLE_SUPERUSER_CLI}
|
- LANGFLOW_ENABLE_SUPERUSER_CLI=${LANGFLOW_ENABLE_SUPERUSER_CLI}
|
||||||
|
# - DEFAULT_FOLDER_NAME="OpenRAG"
|
||||||
|
- HIDE_GETTING_STARTED_PROGRESS=true
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ class EnvConfig:
|
||||||
langflow_superuser_password: str = ""
|
langflow_superuser_password: str = ""
|
||||||
langflow_chat_flow_id: str = "1098eea1-6649-4e1d-aed1-b77249fb8dd0"
|
langflow_chat_flow_id: str = "1098eea1-6649-4e1d-aed1-b77249fb8dd0"
|
||||||
langflow_ingest_flow_id: str = "5488df7c-b93f-4f87-a446-b67028bc0813"
|
langflow_ingest_flow_id: str = "5488df7c-b93f-4f87-a446-b67028bc0813"
|
||||||
|
langflow_url_ingest_flow_id: str = "72c3d17c-2dac-4a73-b48a-6518473d7830"
|
||||||
|
|
||||||
# OAuth settings
|
# OAuth settings
|
||||||
google_oauth_client_id: str = ""
|
google_oauth_client_id: str = ""
|
||||||
|
|
@ -114,6 +115,7 @@ class EnvManager:
|
||||||
"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",
|
||||||
|
"LANGFLOW_URL_INGEST_FLOW_ID": "langflow_url_ingest_flow_id",
|
||||||
"NUDGES_FLOW_ID": "nudges_flow_id",
|
"NUDGES_FLOW_ID": "nudges_flow_id",
|
||||||
"GOOGLE_OAUTH_CLIENT_ID": "google_oauth_client_id",
|
"GOOGLE_OAUTH_CLIENT_ID": "google_oauth_client_id",
|
||||||
"GOOGLE_OAUTH_CLIENT_SECRET": "google_oauth_client_secret",
|
"GOOGLE_OAUTH_CLIENT_SECRET": "google_oauth_client_secret",
|
||||||
|
|
@ -255,6 +257,7 @@ class EnvManager:
|
||||||
f.write(
|
f.write(
|
||||||
f"LANGFLOW_INGEST_FLOW_ID={self._quote_env_value(self.config.langflow_ingest_flow_id)}\n"
|
f"LANGFLOW_INGEST_FLOW_ID={self._quote_env_value(self.config.langflow_ingest_flow_id)}\n"
|
||||||
)
|
)
|
||||||
|
f.write(f"LANGFLOW_URL_INGEST_FLOW_ID={self._quote_env_value(self.config.langflow_url_ingest_flow_id)}\n")
|
||||||
f.write(f"NUDGES_FLOW_ID={self._quote_env_value(self.config.nudges_flow_id)}\n")
|
f.write(f"NUDGES_FLOW_ID={self._quote_env_value(self.config.nudges_flow_id)}\n")
|
||||||
f.write(f"OPENSEARCH_PASSWORD={self._quote_env_value(self.config.opensearch_password)}\n")
|
f.write(f"OPENSEARCH_PASSWORD={self._quote_env_value(self.config.opensearch_password)}\n")
|
||||||
f.write(f"OPENAI_API_KEY={self._quote_env_value(self.config.openai_api_key)}\n")
|
f.write(f"OPENAI_API_KEY={self._quote_env_value(self.config.openai_api_key)}\n")
|
||||||
|
|
|
||||||
2
uv.lock
generated
2
uv.lock
generated
|
|
@ -2282,7 +2282,7 @@ wheels = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "openrag"
|
name = "openrag"
|
||||||
version = "0.1.14.dev1"
|
version = "0.1.14.dev3"
|
||||||
source = { editable = "." }
|
source = { editable = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "agentd" },
|
{ name = "agentd" },
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue