GenAI prompt & chain engineering,
is actually config-management & orchestration in disguise
Generative AI's "Few-shot" flexibility removes model build constraints, shifting the challenge towards orchestration. Most SDKs resist this change, keeping inflexible Python classes. Edgechains presents a declarative config solution built on Google's jsonnet, shifting the paradigm to orchestration. It allows users to orchestrate and develop Generative AI applications without toxic complexity & powerful enough to model config pipelines of 100k LOC...
Example API for edgechains
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
@Bean
@Primary
public CorsEnableOrigins corsEnableOrigins() {
CorsEnableOrigins origins = new CorsEnableOrigins();
origins.setOrigins(Collections.singletonList(
"http://localhost:4200", "http://localhost:4201", "http://localhost:4202"));
return origins;
}
[ features ]
Some Benefits &
Advantages
Open-Source
Get feedback from a friendly opensource community
Token Analytics
Token counts & costs built-in (next release).
Testability
Testability through Jsonnet declarative prompt integration. Edgechain will integrate with most prompt A/B testing tools
Performance
Built for scale. Java, Fastapi(upcoming), Go (upcoming) and nodejs(upcoming) as targets
Integrations & Streaming
Everything is an API. Edgechains supports Streaming out-of-the-box and integrations.
Mult-LLM support
Will integrate with multiple LLM. OpenAI & LLama out-of-the-box
[ The Research behind EdgeChains ]
Jsonnet – A data templating language (used at Kubernetes, Tanka, Google and AllenNLP)
Born at Google
Google Google, Mountain View
The name Jsonnet is a portmanteau of JSON and sonnet, pronounced "jay sonnet". It began life early 2014 as a 20% project and was launched on Aug 6. The design is influenced by several configuration languages internal to Google, and embodies years of experience configuring some of the world's most complex IT systems. Jsonnet is now used by many companies and projects. Jsonnet is a functional lazy evaluated language that supports powerful referential concepts. Compared to Javascript, which on the other hand, is an imperative programming language. Jsonnet is going to allow you to write said DSL faster using functions and it's going to be simpler and less prone to errors.
Initially inspired by GCL (Generic/Google Config Language) - which is a language that uses dynamic scope. GCL codebase at Google is about 180 Million lines of code.
Tools like Zapier, Customer.io's webhooks, etc. allow integration with arbitrary APIs and have become a standard part of many marketing/sales stacks. These apps use things like Jinja, Mustache, or Liquid which are great for text but not JSON templates. CloudFormation built function semantics on top of JSON/YAML twice: once in the form of templates and again in the form of its intrinsic functions. A more comprehensive comparison is in the official documentation.
is prompt X chain X llm
not equal to node X service X pod
? Different pieces of config move at different velocities (e.g. Service configs move faster than node configs) - similarly, prompts move fastest, then chains and LLM configs move the slowest.
[ Nuts & Bolts ]
Get started with Edgechains !
Developer-first GenAI management. Made for any language, for projects big and small. Edgechains takes the complexity out of ideating, building & shipping Generative AI applications.
# To start the application.
java -jar flyfly.jar jbang EdgeChainApplication.java edgechain-app-1.0.0.jar
console.log('Every repo must come with a mascot.');
[ Step 01. ]
Download The Assets
Download from the latest release - the jar(edgechain.jar) and associated files(source code (zip) or Source code(tar.gz))
# To start the application.
java -jar flyfly.jar jbang EdgeChainApplication.java edgechain-app-1.0.0.jar
console.log('Every repo must come with a mascot.');
[ Step 02. ]
Set Up your IDE
The edge chains folder when unzipped consists of an Example folder. Copy all the contents from the Examples folder and paste them into your desired folder. Navigate to the directory where you have extracted the files in your preferred IDE.
# To start the application.
java -jar flyfly.jar jbang EdgeChainApplication.java edgechain-app-1.0.0.jar
console.log('Every repo must come with a mascot.');
[ Step 03. ]
Run the Command
Execute the following command in your IDE’s terminal: java -jar edgechain.jar jbang wikiExample.java.