Architecture [WIP] - statnett/Talk2PowerSystem GitHub Wiki
This page describes the high-level architecture and infrastructure for Statnett's Talk2PowerSystem https://github.com/statnett/Talk2PowerSystem.
Overview
The Talk2PowerSystem provides a solution for simplifying power system analysis by enabling users to construct complex queries from natural language inputs. These queries are used to retrieve data and models based on the Common Information Model (CIM), stored in RDF format.
The system provides a chatbot API with a user interface where power system engineers and other stakeholders can converse with the system by simply asking questions and analyzing the responses. To accomplish this, the chatbot is powered by a Large Language Model, integrated via LangChain. This orchestration connects the LLM with other components of the system or with external systems that can enrich the responses, such as Cognite timeseries.
The chatbot and the LLM are responsible for interpreting user input, generating queries and executing them - making them a crucial part of the Talk2PowerSystem.
The high-level goals of the system are:
- Generate complex queries for complex power system models via natural language inputs
- Provide reliable and transparent answers by leveraging RDF
- Integrate with additional systems to enrich the capabilities of the LLM and the quality of the answers
The key technologies used in the project are:
- OpenAI GPT - Large language model used to generate natural language responses based on RDF and other structured or unstructured data
- LangChain - Framework for orchestration of LLM services, tools, memory and other external systems
- Azure AKS - Managed Kubernetes by Azure, providing infrastructure and automation for the Talk2PowerSystem services
The following GitHub repositories are part of the Talk2PowerSystem project:
- https://github.com/statnett/Talk2PowerSystem - Main project repository that outlines the purpose of Talk2PowerSystem, the architecture and used datasets
- https://github.com/statnett/Talk2PowerSystem_LLM - Repository for the chatbot's backend service and its LLM integrations via LangChain
- https://github.com/statnett/Talk2PowerSystem_UI - Frontend application enabling users to interact with the Talk2PowerSystem through a conversational interface