The CosmosAIGraph (caig) application is deployed as these two microservices:
Name | Functionality |
---|---|
web | Web Application microservice, user-facing, HTML oriented |
graph | Graph Microservice, JSON microservices over an in-memory rdflib graph |
These are located in the app_web, and app_graph directories of this repository.
These are Docker-containerized with the caig_ prefix. Therefore, the container names will be caig_web, and caig_graph.
- Python3 is used exclusively in the CosmosAIGraph solution
- FastAPI is used exclusively as the framework for the web and http services
- Azure Cosmos DB is used as the persistent datastore for source data and session history as well as a vector database
- One or more Cosmos DB APIs may be part of your solution
- See https://learn.microsoft.com/en-us/azure/cosmos-db/
- You can use either the Cosmos DB for MongoDB vCore or Cosmos DB for NoSQL
- Your domain data, with embeddings, are stored here
- AI sessions, prompt history, feedback, and completion history is persisted here
- This Cosmos DB data can optionally be mirrored to OneLake in Microsoft Fabric
- Azure OpenAI is used for AI and LLM functionality
- semantic-kernel is use for AI and LLM orchestration
- rdflib is used as the high-performance in-memory graph
- SPARQL 1.1 is the graph query language
- Web Ontology Language (OWL) is the graph schema/ontology definition language
Open a PowerShell Terminal, navigate to the desired parent directory and execute the following git clone command. This will copy the contents of the public GitHub repository to your workstation.
If you don't have git installed on your system, please see the Developer Workstation Setup page.
> git clone https://github.com/cjoakim/CosmosAIGraph.git
> cd CosmosAIGraph
> Get-Location
The output value from the Get-Location will be a fully-qualified directory path on your workstation. Please set the CAIG_HOME environment variable to this directory path value.
echo 'setting CAIG_HOME'
[Environment]::SetEnvironmentVariable("CAIG_HOME", "...your value from Get-Location ...", "User")
You will need to restart your Terminal for the above command to take effect.
You'll see in a section below that this CosmosAIGraph reference application uses several environment variables, and they all begin with CAIG_.
- See Cosmos DB Document Design and Modeling
- See Load Azure Cosmos DB for MongoDB vCore
- See Load Azure Cosmos DB for NoSQL
- See Screen Shots
It is recommended that CosmosAIGraph Proof-of-Concept (POC) team has the following skillsets:
-
A data analyst who is familiar with your input graph data
-
A data engineer who can wrangle/transform the raw data into JSON documents for Cosmos DB
-
A Python developer with UI skills
-
See Code Generation
-
See the FAQ Page to clarify your understanding of the CosmosAIGraph solution.