58 lines
No EOL
5 KiB
Text
58 lines
No EOL
5 KiB
Text
okay so three things:
|
|
1. the chat, thread, conversation itself
|
|
2. the network thing
|
|
3. and something to script all that?
|
|
|
|
the chat I think it may be just messages, like user assistant and so on with an optional system prompt
|
|
however that may cause issues with tool models, but let's ignore that for now
|
|
oh yeah and something to convert the Chat into something the api accepts, but I think that may be just a function
|
|
|
|
now about requests
|
|
I think that's consistent so get post etc. requests
|
|
with text or json request body
|
|
that responds with a text or json body
|
|
but how?
|
|
I think a DIY interface is the way since each (or every?) platform has a different networking implementation
|
|
we could provide a reference implementation, but I don't know
|
|
|
|
okay now about scripting
|
|
the language that scripts are written in is Groovy
|
|
which may be too powerful to be called a scripting language but whatever
|
|
so:
|
|
- we need to label scripts somehow so a record (actually an object because I want to be compatible) with name, author, version is enough
|
|
and other metadata like streaming support or billing? billing later and TODO streaming should be also a setting
|
|
- permissions... that for later, including sandboxing
|
|
- settings, oh I just came up a name "source"
|
|
but as for settings maybe just a list of label, TODO type (slider, text, choice list etc.) and value range (how with various types is for later)
|
|
- and how it actually works, like when a message is sent we just call a function with the chat object.
|
|
it should return a ChatResponse which TODO has something to stream from and some other metadata?
|
|
|
|
choice of language
|
|
lua:
|
|
I considered Lua, but I don't know, it may be simpler to beginners (not to me though) but it's not as powerful and like javascript messy, inconsistent, vague etc.
|
|
actually I just found out Lua has coroutines, so maybe I was wrong
|
|
and a few more dependencies won't hurt
|
|
other languages:
|
|
I need a runtime that's maintained and up to date with the language, that doesn't rely on native libraries, and that wouldn't take much storage
|
|
here's what claude recommended to consider: (I only edited the headers)
|
|
| Language | JVM-based | Java Interop | Native Libraries | Maintenance | Sandboxing | CRINGE Notes |
|
|
|----------------------|-----------|--------------|----------------------|-------------|----------------------|-------------------------------------------------------|
|
|
| Groovy | Yes | Excellent | Not required | Active | Yes | Java's cool cousin who brings beer to family reunions |
|
|
| Kotlin | Yes | Excellent | Not required | Very active | Yes (careful config) | The overachiever making Java feel insecure |
|
|
| Lua (LuaJ) | Yes | Good | Not required | Moderate | Yes | The tiny language that could (and did) |
|
|
| JavaScript (GraalVM) | Yes | Good | Not required | Active | Yes | "I'm everywhere!" - JavaScript, probably |
|
|
| Python (Jython) | Yes | Good | Not required | Moderate | Yes | Like a snake in Java clothing |
|
|
| Scala | Yes | Excellent | Not required | Active | Yes (careful config) | For when you want your code to look like algebra |
|
|
| Clojure | Yes | Good | Not required | Active | Yes | Parentheses enthusiast's dream come true |
|
|
| Ruby (JRuby) | Yes | Good | Not required | Active | Yes | The language that makes programmers feel like poets |
|
|
| BeanShell | Yes | Excellent | Not required | Less active | Yes | Java's echo... echo... echo... |
|
|
| Rhino | Yes | Good | Not required | Less active | Yes | The JavaScript engine that refuses to go extinct |
|
|
| Frege | Yes | Good | Not required | Less active | Yes | Haskell's attempt at Java world domination |
|
|
| COBOL | Partially | Limited | Often required | Limited | Limited | Your grandpa's favorite programming language |
|
|
| Piet | No | Very limited | Requires interpreter | Minimal | N/A | For when your code should literally be a work of art |
|
|
| C# | No | Limited | Often required | Very active | Yes | Java's arch-nemesis with a Microsoft accent |
|
|
|
|
|
|
similar thing probably exists... I'm sure it does, but I do it as I'd like, maybe it will end up being better
|
|
sorry for such mess, I'm typing fast so I don't forget, and I'm out of water as for now, and distracting music
|
|
okay so my 22 track favorite list just ended so bye |