-
Notifications
You must be signed in to change notification settings - Fork 0
Initial implementation of gendo: an LLM-based programming language
#1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR provides the initial implementation for the Gendo programming language with integration to a local BitNet server running an OpenAI‐compatible API.
- Implements a logging package with different verbosity levels.
- Integrates the OpenAI LLM interface and registers it within the runtime.
- Establishes the core engine to parse and process Gendo scripts and nodes.
Reviewed Changes
Copilot reviewed 18 out of 29 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| pkg/log/log.go | New logging functions for debug, info, and error reporting. |
| pkg/llm/openai/openai.go | OpenAI LLM integration including API key management and request handling. |
| pkg/llm/llm.go | Defines the LLM interface and registry. |
| internal/gendo/gendo_test.go | Unit tests for node processing ensuring expected prompt and input handling. |
| internal/gendo/gendo.go | Implements the script execution engine and processing chain for nodes. |
| examples/README.md | Documentation on script examples and configuration details. |
| cmd/gendo/main.go | Command-line entry point for running Gendo scripts. |
| README.md | Updated language specification for Gendo. |
| LICENSE | Updated license information. |
Files not reviewed (11)
- .cursor/rules/development-workflow.mdc: Language not supported
- .cursor/rules/llm-integration.mdc: Language not supported
- .cursor/rules/math-tool.mdc: Language not supported
- .cursor/rules/project-structure.mdc: Language not supported
- .cursor/rules/testing-requirements.mdc: Language not supported
- Makefile: Language not supported
- examples/calculator.gendo: Language not supported
- examples/file_processor.gendo: Language not supported
- examples/hello.gendo: Language not supported
- examples/random_story.gendo: Language not supported
- go.mod: Language not supported
gendo programming language.
gendo programming language.gendo programming language
gendo programming languagegendo: an LLM-based programming language
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request introduces the initial implementation of Gendo, an LLM-based programming language for orchestrating language model behavior through node-based pipelines. Key changes include a core LLM interface and registry (pkg/llm/llm.go), the main Gendo engine for processing nodes and script I/O (internal/gendo/gendo.go), and comprehensive tests and documentation updates that demonstrate tool integration and node chaining.
Reviewed Changes
Copilot reviewed 26 out of 38 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| pkg/llm/llm.go | Defines the LLM interface and registry for language model implementations. |
| internal/gendo/gendo_test.go | Introduces unit tests for node processing and prompt handling. |
| internal/gendo/gendo.go | Implements core processing logic for nodes, I/O, error handling, and routing. |
| examples/README.md | Provides example scripts and configuration guidelines for Gendo. |
| cmd/gendo/main.go | Adds the command-line interface to run Gendo scripts. |
| README.md | Updates the language specification and documentation for Gendo. |
| LICENSE | Updates the copyright information. |
| .github/copilot-instructions.md | Contains internal Copilot instructions for code review. |
Files not reviewed (12)
- .cursor/rules/development-workflow.mdc: Language not supported
- .cursor/rules/git-commit-practices.mdc: Language not supported
- .cursor/rules/llm-integration.mdc: Language not supported
- .cursor/rules/math-tool.mdc: Language not supported
- .cursor/rules/project-structure.mdc: Language not supported
- .cursor/rules/testing-requirements.mdc: Language not supported
- Makefile: Language not supported
- examples/calculator.gendo: Language not supported
- examples/file_processor.gendo: Language not supported
- examples/hello.gendo: Language not supported
- examples/random_story.gendo: Language not supported
- go.mod: Language not supported
| } | ||
|
|
||
| // Process through the chain of nodes defined in the script | ||
| for nodeID := 3; nodeID >= 1; nodeID-- { |
Copilot
AI
May 1, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] Consider refactoring the hard-coded node ID loop into a more flexible mechanism (e.g., iterating based on dynamic node chaining order) to enhance scalability and maintainability.
This PR and branch is obsolete. Current work is done in the
gndrepository: https://github.com/hyperifyio/gnd/pullsThis pull request introduces the first working version of Gendo, a simple, node-based programming language designed to orchestrate LLM behavior through declarative flows. Gendo allows you to define how inputs are parsed, processed, and returned—entirely through structured prompt logic and tool integration.
✅ Included Example:
examples/calculator.gendoThis example demonstrates a minimal but fully functional program that turns natural language into a math result using an OpenAI-compatible LLM backend:
🧪 How to Run
This example runs with any OpenAI-compatible LLM backend. For local testing, we use Microsoft's BitNet:
Expected output:
🧠 Behind the Scenes
This Gendo program consists of:
3 < 0and1 < 3, with fallback to2!for all nodes🚀 BitNet Setup
You can run the BitNet LLM server locally like this:
No GPU is required. BitNet runs in approximately 2 GB of RAM.
Feedback is especially welcome on:
<and!)This release lays the foundation for building composable LLM-based applications with declarative logic.