Skip to content

leraniode/illygen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Illygen

Illygen

Part of Leraniode Illygen Intelligence

GitHub Issues GitHub Stars GitHub Forks GitHub License GitHub Actions CI pkg.go.dev Go Report Card Last Commit

A Go-based library and runtime for building intelligence systems.

Illygen enables developers to build AI-like systems that can reason, make decisions, and learn — without being full AI models. It mimics the concepts used in AI using deterministic, inspectable, resource-light Go machinery.

It is not a replacement for AI. It is a lightweight alternative for domains where AI is overkill — embedded systems, edge computing, domain-specific reasoning engines, and smart automation.


Concepts

Concept What it is
Node A single unit of reasoning. You consult it, it returns a verdict. Like a neuron.
Flow A net of connected nodes — the reasoning pipeline. Like a neural network.
Knowledge The feed of intelligence. The more, the smarter the system.

Installation

To add it to your project, simply use:

go get github.com/leraniode/illygen@latest

Or add it to your go.mod by importing github.com/leraniode/illygen in your code and running go mod tidy.


Quick Start

package main

import (
    "fmt"

    illygen "github.com/leraniode/illygen"
)

func main() {
    // Define nodes as plain Go functions
    profiler := illygen.NewNode("profiler", func(ctx illygen.Context) illygen.Result {
        if ctx.Get("is_programmer") == true {
            return illygen.Result{Next: "go_intro", Confidence: 0.9}
        }
        return illygen.Result{Next: "prog_intro", Confidence: 0.7}
    })

    goIntro := illygen.NewNode("go_intro", func(ctx illygen.Context) illygen.Result {
        return illygen.Result{
            Value:      "Welcome! Here's Go: https://go.dev",
            Confidence: 1.0,
        }
    })

    progIntro := illygen.NewNode("prog_intro", func(ctx illygen.Context) illygen.Result {
        return illygen.Result{
            Value:      "Welcome! Programming is the art of telling computers what to do.",
            Confidence: 1.0,
        }
    })

    // Wire the flow
    flow := illygen.NewFlow().
        Add(profiler).
        Add(goIntro).
        Add(progIntro).
        Link("profiler", "go_intro", 1.0).
        Link("profiler", "prog_intro", 1.0)

    // Run it
    engine := illygen.NewEngine()

    result, err := engine.Run(flow, illygen.Context{
        "is_programmer": true,
    })
    if err != nil {
        panic(err)
    }

    fmt.Println(result.Value)
    // Output: Welcome! Here's Go: https://go.dev
}

Contribution

Note

Contributions are welcome! Please open an issue or submit a pull request.

If you have ideas, suggestions, or want to contribute code, please feel free to:

  • Join the discussion in the Leraniode Discussions
  • Open an issue for bugs or feature requests
  • Submit a pull request with your changes

License

MIT


A leraniode project.

Leraniode

About

a Go-based library and runtime for building intelligence systems 🧠

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors

Languages