jkomoros / code-sprouts Goto Github PK
View Code? Open in Web Editor NEWA simple framework to build bots using LLMs and simple state management
License: Apache License 2.0
A simple framework to build bots using LLMs and simple state management
License: Apache License 2.0
With a GUI... but later also running fully deployable
serve:generate
under serve
once it stops re-running a billion times--watch
for generating directory listings and compiling sproutssprout:compile
that compiles all local sprouts (and is run before deploy)Currently it has to fetch multiple files. Maybe it first tries to fetch compiled.json and if not builds it itself.
Building might require some LLM calls, so in some clients it will only work with compiled ones, to avoid expensive rebuilding.
E.g. "reaching out to a REST endpoint"
Show a dialog to a user for new action types for new sprouts.
In the future, maybe have an optional suspicious signals clearing house?
as any
in sprout.conversationTurn around patchThat's instead handled in the dataManager layer entirely, which wirtes into localFilesystem
We don't save compiled files out and the tooling fetches the compiled data and saves out instead of assuimign the sprout will.
Related to #19
Related to #3
sprout
for viewer to view
, since the common case will have lots of view/sprouts/username/sproutname/
in the URL, and two sprouts in a row is duplicative<p>
\
and then n
. That means the previous and next don't diff cleanly, leading to it returning the whole string, which leads to duplicating it.With more than just text/images interaction.
You can imagine the bot being able to respond with prebaked responses for the user to respond with.
Allow multiple bots to work together.
Taking this even further, you can imagine a more formal notion of threads as described here: https://docs.google.com/document/d/1nmn3xi_LyR_c2inNsDNGkfUGA1lxRKyV7zHfNTNdddo/edit#heading=h.n3w7p91fkufp
version
--> format
system
roleSet / retrieve
node build/src/index.js
Rationalize concept of OverlayFetcher, BrowserFetcher, NodeFetcher, etc.
Currently BrowserFetcher has a localWriteablePath that it traps out to LocalFilesystem.
Instead, create a FilesystemFetcher, (and in other cases, you might have e.g. a FirebaseFetcher).
Fetcher grows a validPath() which errors if it's a prefix this fetcher doesn't know how to deal with.
And then add a MetaFetcher, that takes a default fetcher, and then can registerHandler(pathPrefix, subFetcher) that will be called out to when it matches.
Fetcher.listSprouts() doesn't take paths, it just is supposed to list any sprouts it knows of. And the MetaFetcher calls sub ones.
Related to #19
src/fetchers
It's not being picked up by any services when shared for some reason
Some sprouts don't want state, they just want "previous messages".
In that case, the bot should only get a messageForUser
This will require sharing both the bot and user messages in the history, and dont' show the state in the webapp
E.g. one that wanted to allow publishing sprouts via Firestore.
Entails a clean factoring of the project.
Input and output
We're doing an ad hoc version of it, but we should formalize that as the bridge, the models are updated for it
And also use type json_object
to constrain return types
Have a sub_instructions directory. The name of the .md file is the instruction.
When compiling, it generates a 10 word summary of each item and puts that in compiled.subInstructions:
{
//...
sub_instructions: {
"ingest_board": {
"summary": "<GPT-generated summary>",
"default": true,
"instructions": "<Full text of ingest_clues.md>",
}
"suggest_clue": {
"summary": "<GPT-generated summary>",
"instructions": <"Full text of suggest_clue.md>"
}
//...
}
Make it so the turn can have a explain_sub_instruction
with each sub-instruction type. If there's a selected sub_instruction it will be played.
config.json can have a default_sub_instruction to explain to start.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.