How denodo/denodo-ai-sdk works
Denodo AI SDK exposes governed enterprise-data and AI capabilities through an API, with a sample chatbot as a user-facing client. The principal workflow is a natural-language question entering an answer endpoint, using metadata retrieval and VQL generation/execution to produce a grounded response. Separate branches support metadata search and DeepQuery research/report generation. The graph also shows configurable model/vector-store infrastructure and chatbot components. Source excerpts are partial; documented capabilities are retained, while unsupported implementation links are omitted or marked unverified.
Main entry points: api/main.py SDK service · pipeline.py VQL answer pipeline · deepquery/main.py Research orchestration · state_manager.py Resource manager
Components 28
SDK API
- SDK service
api/main.py - Question answering
api/endpoints/answerQuestion.py - Metadata search
api/endpoints/similaritySearch.py - DeepQuery endpoint
api/endpoints/deepQuery.py - Report endpoint
api/endpoints/generateDeepQueryReport.py
Query and Data
- VQL answer pipeline
api/utils/data_category/pipeline.py - VQL generation
api/utils/data_category/generate.py - Query resolution
api/utils/data_category/resolve.py - Answer and plots
api/utils/data_category/answer.py - SDK data utilities
api/utils/sdk_utils.py - Denodo connection
utils/data_marketplace/connection.py - Schema catalog
utils/schema_catalog/catalog.py
DeepQuery Research
- Research orchestration
api/deepquery/main.py - Analysis agent
api/deepquery/analysis_agent/tools.py - Report generation
api/deepquery/reporting_agent/report_processor.py
AI Runtime
- Resource manager
api/utils/state_manager.py - LLM adapters
utils/uniformLLM.py - Embedding adapter
utils/uniformEmbeddings.py - Vector-store adapter
utils/uniformVectorStore.py - Vector database
- LLM provider
Sample Chatbot
- Chat interface
sample_chatbot/frontend/src/App.js - API client
sample_chatbot/frontend/src/api/client.js - Chat routes
sample_chatbot/routes/chat.py - Chat service
sample_chatbot/services/chat_service.py - SDK client
sample_chatbot/utils/ai_sdk_client.py
Other components
- API caller
- Chat user
Connections 28
- API caller → SDK service: submits requests
api/main.py - SDK service → Question answering: routes questions
api/main.py - SDK service → Metadata search: routes search
api/main.py - SDK service → DeepQuery endpoint: routes research
api/main.py - SDK service → Report endpoint: routes reports
api/main.py - Question answering → VQL answer pipeline: processes questions
- VQL answer pipeline → VQL generation: generates VQL
api/utils/data_category/pipeline.py - VQL answer pipeline → Query resolution: resolves query
api/utils/data_category/pipeline.py - VQL answer pipeline → Answer and plots: builds response
api/utils/data_category/pipeline.py - Query resolution → Denodo connection: executes VQL
- Metadata search → Vector-store adapter: searches metadata
- SDK data utilities → Denodo connection: uses connection
api/utils/sdk_utils.py - SDK data utilities → Schema catalog: uses catalog
api/utils/sdk_utils.py - DeepQuery endpoint → Research orchestration: starts analysis
api/endpoints/deepQuery.py - Research orchestration → Analysis agent: uses tools
api/deepquery/main.py - Research orchestration → Report generation: generates report
api/deepquery/main.py - Report endpoint → Research orchestration: requests report
api/endpoints/generateDeepQueryReport.py - Resource manager → LLM adapters: creates models
api/utils/state_manager.py - Resource manager → Embedding adapter: creates embeddings
api/utils/state_manager.py - Resource manager → Vector-store adapter: creates stores
api/utils/state_manager.py - LLM adapters → LLM provider: calls provider
- Vector-store adapter → Vector database: stores vectors
- Chat user → Chat interface: asks questions
- Chat interface → API client: sends requests
sample_chatbot/frontend/src/App.js - API client → Chat routes: calls API
- Chat routes → Chat service: delegates chat
- Chat service → SDK client: uses SDK client
sample_chatbot/services/chat_service.py - SDK client → SDK service: calls SDK