Skip to content

eagleeyethinker/agentic-ai-platform-enterprise

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Enterprise Agentic AI Platform

A compact reference implementation for an enterprise-style agentic AI workflow built with FastAPI, LangGraph, Qdrant, Neo4j, and an OpenAI-compatible reasoning layer.

What It Does

The platform routes an incoming operational question through specialized agents:

  • router_agent selects the branch to run
  • retrieval_agent queries vectorized operational documents in Qdrant
  • tool_agent calls the weather MCP service
  • graph_agent queries Neo4j for graph context
  • reasoning_agent produces the final recommendation

Current routing behavior:

  • Weather and flight-impact queries go through the weather branch
  • General policy and operations queries go through the RAG branch

Stack

Layer Technology
API FastAPI
Workflow orchestration LangGraph
Reasoning OpenAI-compatible chat completions
Vector store Qdrant
Graph store Neo4j
Embeddings SentenceTransformers
Tool service FastAPI weather MCP
Runtime Docker Compose

Repository Layout

agentic-ai-platform-enterprise/
├── agents/
├── api/
├── rag/
├── tools/
├── workflows/
├── .env
├── .gitignore
├── docker-compose.yml
├── Dockerfile
├── README.md
└── requirements.txt

Configuration

The repo now includes a root .env file. The main settings are:

API_PORT=8000
OPENAI_API_KEY=
OPENAI_MODEL=gpt-4o-mini
EMBEDDING_MODEL=all-MiniLM-L6-v2
QDRANT_COLLECTION=airline_docs
QDRANT_URL=http://qdrant:6333
NEO4J_URI=bolt://neo4j:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=password
WEATHER_MCP_URL=http://weather-mcp:9001
DEFAULT_AIRPORT=ATL

Notes:

  • OPENAI_API_KEY is optional for local testing
  • If no OpenAI key is set, the app returns a deterministic fallback recommendation
  • API_PORT controls the host port exposed by Docker Compose

Quick Start

  1. Start the stack:
docker compose up --build -d
  1. Ingest the sample RAG documents into Qdrant:
docker compose exec api python rag/ingest_docs.py
  1. Query the API:
http://localhost:8000/query?q=Storm expected in ATL at 17:00

If port 8000 is already in use, set API_PORT in .env before starting Compose.

API Response Shape

GET /query?q=... returns a structured response:

{
  "query": "Storm expected in ATL at 17:00",
  "route": "weather",
  "decision": "Monitor ATL operations due to high storm conditions.",
  "weather": {
    "airport": "ATL",
    "event": "Storm",
    "severity": "High"
  },
  "rag_context": null,
  "graph_data": [],
  "errors": []
}

For RAG-oriented queries, route will be rag and rag_context will contain retrieved document snippets.

Local Behavior Notes

  • The weather service is internal to Compose and is called through WEATHER_MCP_URL
  • Qdrant and Neo4j are networked internally in Compose and do not need host port bindings for normal app usage
  • Neo4j graph results are currently best-effort; if the sample database has no Flight nodes, the app still returns a response
  • The reasoning layer records upstream failures in the errors field instead of silently masking them

Example Queries

Weather route:

/query?q=Storm expected in ATL at 17:00

RAG route:

/query?q=What does the ops manual say about hub congestion?

Development Notes

  • The Dockerfile installs dependencies before copying the rest of the source to improve build caching
  • .gitignore excludes Python bytecode, virtual environments, local env files, and common cache directories
  • .dockerignore keeps the build context smaller by excluding cache and local development artifacts

Author

Satish Gopinathan
Website: https://www.eagleeyethinker.com

License

MIT

About

Enterprise reference architecture for Agentic AI systems using LangGraph, RAG, knowledge graphs, and LLM reasoning to power autonomous operational decision workflows.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors