Skip to content

Staging code to Main #1329

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 31 commits into from
Jun 24, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
f46ebc2
Dev to staging (#1070)
praveshkumar1988 Feb 12, 2025
77160ea
Dev (#1073)
prakriti-solankey Feb 13, 2025
703f307
Dev (#1085)
kartikpersistent Feb 13, 2025
5443c51
Update docker-compose.yml
kartikpersistent Feb 16, 2025
e7a4ee1
Merge branch 'main' into staging
prakriti-solankey Feb 17, 2025
f000501
Dev (#1095)
kartikpersistent Feb 17, 2025
e2d0039
Dev to staging minor fixes (#1103)
praveshkumar1988 Feb 20, 2025
bd54178
Merge branch 'main' into staging
kartikpersistent Feb 20, 2025
7818f6f
Dev to staging (#1108)
prakriti-solankey Feb 21, 2025
a005186
Dev (#1132)
prakriti-solankey Mar 6, 2025
56dacdd
bracket missing
prakriti-solankey Mar 6, 2025
baa914e
dev (#1156)
kartikpersistent Mar 6, 2025
a0fae04
Dev (#1172)
prakriti-solankey Mar 11, 2025
2bdddea
Merge branch 'main' into staging
prakriti-solankey Mar 11, 2025
83073de
Dev to Staging (#1210)
kaustubh-darekar Apr 1, 2025
834f68f
Update PageLayout.tsx
kartikpersistent Apr 4, 2025
01cac9c
queue type fix
kartikpersistent Apr 7, 2025
8bfb595
Update requirements.txt
karanchellani Apr 8, 2025
f2e72dc
Dev (#1218)
kartikpersistent Apr 17, 2025
9fc71b5
Dev (#1239)
kartikpersistent Apr 21, 2025
91b78b7
Dev (#1244)
kartikpersistent Apr 21, 2025
00109d3
Merge branch 'main' into staging
kartikpersistent Apr 21, 2025
2f8b31d
Dev to Staging (#1279)
praveshkumar1988 May 9, 2025
02de002
staging bug
prakriti-solankey May 9, 2025
437fc3d
Merge branch 'main' of https://github.com/neo4j-labs/llm-graph-builde…
prakriti-solankey May 12, 2025
21cf0ea
staging fix
prakriti-solankey May 12, 2025
4e22e8f
Dev (#1284)
kartikpersistent May 15, 2025
51fa6c1
Staging to Dev (#1291)
prakriti-solankey May 19, 2025
9687e84
Merge branch 'main' into staging
kartikpersistent May 19, 2025
bf1c8c6
Dev to Staging (#1326)
prakriti-solankey Jun 23, 2025
355bdac
Merge branch 'main' into staging
prakriti-solankey Jun 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions backend/example.env
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,14 @@ LLM_MODEL_CONFIG_openai_gpt_o3_mini="o3-mini-2025-01-31,openai_api_key"
LLM_MODEL_CONFIG_gemini_1.5_pro="gemini-1.5-pro-002"
LLM_MODEL_CONFIG_gemini_1.5_flash="gemini-1.5-flash-002"
LLM_MODEL_CONFIG_gemini_2.0_flash="gemini-2.0-flash-001"
LLM_MODEL_CONFIG_gemini_2.5_pro="gemini-2.5-pro-exp-03-25"
LLM_MODEL_CONFIG_gemini_2.5_pro="gemini-2.5-pro"
LLM_MODEL_CONFIG_diffbot="diffbot,diffbot_api_key"
LLM_MODEL_CONFIG_azure_ai_gpt_35="azure_deployment_name,azure_endpoint or base_url,azure_api_key,api_version"
LLM_MODEL_CONFIG_azure_ai_gpt_4o="gpt-4o,https://YOUR-ENDPOINT.openai.azure.com/,azure_api_key,api_version"
LLM_MODEL_CONFIG_groq_llama3_70b="model_name,base_url,groq_api_key"
LLM_MODEL_CONFIG_anthropic_claude_3_5_sonnet="model_name,anthropic_api_key"
LLM_MODEL_CONFIG_anthropic_claude_4_sonnet="model_name,anthropic_api_key" #model_name="claude-sonnet-4-20250514"
LLM_MODEL_CONFIG_fireworks_llama4_maverick="model_name,fireworks_api_key"
LLM_MODEL_CONFIG_bedrock_claude_3_5_sonnet="model_name,aws_access_key_id,aws_secret__access_key,region_name"
LLM_MODEL_CONFIG_ollama_llama3="model_name,model_local_url"
LLM_MODEL_CONFIG_ollama_llama3="llama3_model_name,model_local_url"
YOUTUBE_TRANSCRIPT_PROXY="https://user:pass@domain:port"
EFFECTIVE_SEARCH_RATIO=5
GRAPH_CLEANUP_MODEL="openai_gpt_4o"
Expand Down
77 changes: 39 additions & 38 deletions backend/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,64 +1,65 @@
accelerate==1.6.0
accelerate==1.7.0
asyncio==3.4.3
boto3==1.37.29
botocore==1.37.29
certifi==2025.1.31
fastapi==0.115.11
boto3==1.38.36
botocore==1.38.36
certifi==2025.6.15
fastapi==0.115.12
fastapi-health==0.4.0
google-api-core==2.24.2
google-auth==2.38.0
google_auth_oauthlib==1.2.1
fireworks-ai==0.15.12
google-api-core==2.25.1
google-auth==2.40.3
google_auth_oauthlib==1.2.2
google-cloud-core==2.4.3
json-repair==0.39.1
pip-install==1.3.5
langchain==0.3.23
langchain-aws==0.2.18
langchain-anthropic==0.3.9
langchain-fireworks==0.2.9
langchain-community==0.3.19
langchain-core==0.3.51
langchain==0.3.25
langchain-aws==0.2.25
langchain-anthropic==0.3.15
langchain-fireworks==0.3.0
langchain-community==0.3.25
langchain-core==0.3.65
langchain-experimental==0.3.4
langchain-google-vertexai==2.0.19
langchain-groq==0.2.5
langchain-openai==0.3.12
langchain-google-vertexai==2.0.25
langchain-groq==0.3.2
langchain-openai==0.3.23
langchain-text-splitters==0.3.8
langchain-huggingface==0.1.2
langchain-huggingface==0.3.0
langdetect==1.0.9
langsmith==0.3.26
langsmith==0.3.45
langserve==0.3.1
neo4j-rust-ext
neo4j-rust-ext==5.28.1.0
nltk==3.9.1
openai==1.71.0
openai==1.86.0
opencv-python==4.11.0.86
psutil==7.0.0
pydantic==2.10.6
python-dotenv==1.0.1
pydantic==2.11.7
python-dotenv==1.1.0
python-magic==0.4.27
PyPDF2==3.0.1
PyMuPDF==1.25.5
starlette==0.46.1
sse-starlette==2.2.1
PyMuPDF==1.26.1
starlette==0.46.2
sse-starlette==2.3.6
starlette-session==0.4.3
tqdm==4.67.1
unstructured[all-docs]
unstructured==0.17.2
unstructured-client==0.32.3
unstructured-inference==0.8.10
urllib3==2.3.0
uvicorn==0.34.0
unstructured-client==0.36.0
unstructured-inference==1.0.5
urllib3==2.4.0
uvicorn==0.34.3
gunicorn==23.0.0
wikipedia==1.4.0
wrapt==1.17.2
yarl==1.18.3
youtube-transcript-api==1.0.3
zipp==3.21.0
sentence-transformers==4.0.2
google-cloud-logging==3.11.4
yarl==1.20.1
youtube-transcript-api==1.1.0
zipp==3.23.0
sentence-transformers==4.1.0
google-cloud-logging==3.12.1
pypandoc==1.15
graphdatascience==1.14
graphdatascience==1.15.1
Secweb==1.18.1
ragas==0.2.14
ragas==0.2.15
rouge_score==0.1.2
langchain-neo4j==0.4.0
pypandoc-binary==1.15
chardet==5.2.0
chardet==5.2.0
6 changes: 3 additions & 3 deletions frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@
"@auth0/auth0-react": "^2.2.4",
"@emotion/styled": "^11.14.0",
"@mui/material": "^5.15.10",
"@mui/styled-engine": "^7.0.2",
"@mui/styled-engine": "^7.1.0",
"@neo4j-devtools/word-color": "^0.0.8",
"@neo4j-ndl/base": "^3.2.9",
"@neo4j-ndl/react": "^3.2.18",
"@neo4j-nvl/base": "^0.3.6",
"@neo4j-nvl/react": "^0.3.7",
"@neo4j-nvl/react": "^0.3.8",
"@react-oauth/google": "^0.12.1",
"@tanstack/react-table": "^8.20.5",
"@types/uuid": "^10.0.0",
Expand All @@ -46,7 +46,7 @@
"@types/react-dom": "^18.2.7",
"@typescript-eslint/eslint-plugin": "^7.0.0",
"@typescript-eslint/parser": "^6.0.0",
"@vitejs/plugin-react": "^4.0.3",
"@vitejs/plugin-react": "^4.5.0",
"eslint": "^8.45.0",
"eslint-config-prettier": "^10.1.1",
"eslint-plugin-react-hooks": "^5.1.0",
Expand Down
91 changes: 77 additions & 14 deletions frontend/src/components/Layout/PageLayout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,14 @@ import { envConnectionAPI } from '../../services/ConnectAPI';
import { healthStatus } from '../../services/HealthStatus';
import { useAuth0 } from '@auth0/auth0-react';
import { showErrorToast } from '../../utils/Toasts';
import { APP_SOURCES, LOCAL_KEYS } from '../../utils/Constants';
import { APP_SOURCES } from '../../utils/Constants';
import { createDefaultFormData } from '../../API/Index';
import LoadDBSchemaDialog from '../Popups/GraphEnhancementDialog/EnitityExtraction/LoadExistingSchema';
import PredefinedSchemaDialog from '../Popups/GraphEnhancementDialog/EnitityExtraction/PredefinedSchemaDialog';
import { SKIP_AUTH } from '../../utils/Constants';
import { useNavigate } from 'react-router';
import { deduplicateByFullPattern, deduplicateNodeByValue } from '../../utils/Utils';
import DataImporterSchemaDialog from '../Popups/GraphEnhancementDialog/EnitityExtraction/DataImporter';


const GCSModal = lazy(() => import('../DataSources/GCS/GCSModal'));
Expand Down Expand Up @@ -187,13 +188,20 @@ const PageLayout: React.FC = () => {
setSchemaValRels,
setDbNodes,
setDbRels,
setSchemaView,
setPreDefinedNodes,
setPreDefinedRels,
setPreDefinedPattern,
allPatterns,
selectedNodes,
selectedRels,
dataImporterSchemaDialog,
setDataImporterSchemaDialog,
setImporterPattern,
setImporterNodes,
setImporterRels,
setSourceOptions,
setTargetOptions,
setTypeOptions,
} = useFileContext();
const navigate = useNavigate();
const { user, isAuthenticated } = useAuth0();
Expand Down Expand Up @@ -381,10 +389,9 @@ const PageLayout: React.FC = () => {
const combined = [...rels, ...prevRels];
return deduplicateByFullPattern(combined);
});
setSchemaView('text');
localStorage.setItem(LOCAL_KEYS.source, JSON.stringify(updatedSource));
localStorage.setItem(LOCAL_KEYS.type, JSON.stringify(updatedType));
localStorage.setItem(LOCAL_KEYS.target, JSON.stringify(updatedTarget));
setSourceOptions((prev) => [...prev, ...updatedSource]);
setTargetOptions((prev) => [...prev, ...updatedTarget]);
setTypeOptions((prev) => [...prev, ...updatedType]);
},
[]
);
Expand All @@ -410,7 +417,6 @@ const PageLayout: React.FC = () => {
triggeredFrom: 'loadExistingSchemaApply',
show: true,
});
setSchemaView('db');
setDbNodes(nodes);
setCombinedNodesVal((prevNodes: OptionType[]) => {
const combined = [...nodes, ...prevNodes];
Expand All @@ -421,9 +427,9 @@ const PageLayout: React.FC = () => {
const combined = [...rels, ...prevRels];
return deduplicateByFullPattern(combined);
});
localStorage.setItem(LOCAL_KEYS.source, JSON.stringify(updatedSource));
localStorage.setItem(LOCAL_KEYS.type, JSON.stringify(updatedType));
localStorage.setItem(LOCAL_KEYS.target, JSON.stringify(updatedTarget));
setSourceOptions((prev) => [...prev, ...updatedSource]);
setTargetOptions((prev) => [...prev, ...updatedTarget]);
setTypeOptions((prev) => [...prev, ...updatedType]);
},
[]
);
Expand All @@ -448,7 +454,6 @@ const PageLayout: React.FC = () => {
triggeredFrom: 'predefinedSchemaApply',
show: true,
});
setSchemaView('preDefined');
setPreDefinedNodes(nodes);
setCombinedNodesVal((prevNodes: OptionType[]) => {
const combined = [...nodes, ...prevNodes];
Expand All @@ -459,9 +464,47 @@ const PageLayout: React.FC = () => {
const combined = [...rels, ...prevRels];
return deduplicateByFullPattern(combined);
});
localStorage.setItem(LOCAL_KEYS.source, JSON.stringify(updatedSource));
localStorage.setItem(LOCAL_KEYS.type, JSON.stringify(updatedType));
localStorage.setItem(LOCAL_KEYS.target, JSON.stringify(updatedTarget));
setSourceOptions((prev) => [...prev, ...updatedSource]);
setTargetOptions((prev) => [...prev, ...updatedTarget]);
setTypeOptions((prev) => [...prev, ...updatedType]);
},
[]
);

const handleImporterApply = useCallback(
(
newPatterns: string[],
nodes: OptionType[],
rels: OptionType[],
updatedSource: OptionType[],
updatedTarget: OptionType[],
updatedType: OptionType[]
) => {
setImporterPattern((prevPatterns: string[]) => {
const uniquePatterns = Array.from(new Set([...newPatterns, ...prevPatterns]));
return uniquePatterns;
});
setCombinedPatternsVal((prevPatterns: string[]) => {
const uniquePatterns = Array.from(new Set([...newPatterns, ...prevPatterns]));
return uniquePatterns;
});
setDataImporterSchemaDialog({
triggeredFrom: 'importerSchemaApply',
show: true,
});
setImporterNodes(nodes);
setCombinedNodesVal((prevNodes: OptionType[]) => {
const combined = [...nodes, ...prevNodes];
return deduplicateNodeByValue(combined);
});
setImporterRels(rels);
setCombinedRelsVal((prevRels: OptionType[]) => {
const combined = [...rels, ...prevRels];
return deduplicateByFullPattern(combined);
});
setSourceOptions((prev) => [...prev, ...updatedSource]);
setTargetOptions((prev) => [...prev, ...updatedTarget]);
setTypeOptions((prev) => [...prev, ...updatedType]);
},
[]
);
Expand All @@ -478,6 +521,10 @@ const PageLayout: React.FC = () => {
setShowTextFromSchemaDialog({ triggeredFrom: 'schemadialog', show: true });
}, []);

const openDataImporterSchema = useCallback(() => {
setDataImporterSchemaDialog({ triggeredFrom: 'schemadialog', show: true });
}, []);

const openChatBot = useCallback(() => setShowChatBot(true), []);

return (
Expand Down Expand Up @@ -566,6 +613,20 @@ const PageLayout: React.FC = () => {
}}
onApply={handlePredinedApply}
></PredefinedSchemaDialog>
<DataImporterSchemaDialog
open={dataImporterSchemaDialog.show}
onClose={() => {
setDataImporterSchemaDialog({ triggeredFrom: '', show: false });
switch (dataImporterSchemaDialog.triggeredFrom) {
case 'enhancementtab':
toggleEnhancementDialog();
break;
default:
break;
}
}}
onApply={handleImporterApply}
></DataImporterSchemaDialog>
{isLargeDesktop ? (
<div
className={`layout-wrapper ${!isLeftExpanded ? 'drawerdropzoneclosed' : ''} ${
Expand Down Expand Up @@ -597,6 +658,7 @@ const PageLayout: React.FC = () => {
openTextSchema={openTextSchema}
openLoadSchema={openLoadSchema}
openPredefinedSchema={openPredefinedSchema}
openDataImporterSchema={openDataImporterSchema}
showEnhancementDialog={showEnhancementDialog}
toggleEnhancementDialog={toggleEnhancementDialog}
setOpenConnection={setOpenConnection}
Expand Down Expand Up @@ -671,6 +733,7 @@ const PageLayout: React.FC = () => {
openTextSchema={openTextSchema}
openLoadSchema={openLoadSchema}
openPredefinedSchema={openPredefinedSchema}
openDataImporterSchema={openDataImporterSchema}
showEnhancementDialog={showEnhancementDialog}
toggleEnhancementDialog={toggleEnhancementDialog}
setOpenConnection={setOpenConnection}
Expand Down
Loading