chatapi/thinkings/thinking-old.txt

64 lines
5.2 KiB
Text
Raw Permalink Normal View History

2024-08-31 12:37:06 +02:00
THIS IS NOW OUTDATED
original document below
---------
2024-08-28 13:42:32 +02:00
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 |
2024-08-28 15:09:38 +02:00
I think the name "source" is fine, but I don't think that's how the class should be named because it may be confused with java stuff
2024-08-28 13:42:32 +02:00
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