This is an extension of the orignal Langium framework project, aimed to facilitate interactions with LLMs during development with DSLs. Given a Langium-based DSL, we propose two approaches for the communication with the LLM: one based on the DSL concrete syntax and the other in its abstract syntax. The first one is commited on the current "main" branch, while the second one on a dedicated branch, "json_format". Depending on the solution chosen, our extension generates a conversational interface that is aware of the grammar of the DSL concrete syntax or of the JSON Schema of its abstract syntax, enabling software engineers to collaborate with the LLM while developing in the DSL, using natural language instructions.
Build your first language with Langium in our online playground.
Once you're ready to set up a project, you can build it locally:
sudo npm run dev-build
sudo npm run build
yo langium
We host a number of examples in our main repo:
- urban-transportation: Urban transportation
- cultural-heritage: Cultural heritage
- human-body: Human body
- statemachine: State machine orignal extended project.