-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build skeleton of end-to-end toolchain for next-generation L4 DSL through to REST API #605
Comments
Concretely, that means that the currently-hardcoded dsl/lib/haskell/explainable/app/Server.hs Lines 493 to 499 in fe2b758
dsl/lib/haskell/explainable/app/Server.hs Line 573 in fe2b758
|
In turn, that means we need to swap out the existing MathLang stuff and perhaps drop Simala in its place? |
I've been thinking of something like this for a while now, yeah, except that I've been thinking of the chat bot involvement more as a copilot than the servant api. With Langium / Lam4 (and of course with any other implementation that has a LSP), one can do the Yscript-style visual linking too |
Other things to look at: OIA Batch APIhttps://docs.oracle.com/en/cloud/saas/b2c-service/opawx/using-batch-assess-rest-api.html client to the OIAhttps://github.com/smucclaw/royalflush/blob/main/experiments/meng/oiacall.py existing Servant serverhttps://github.com/smucclaw/dsl/blob/main/lib/haskell/explainable/app/Server.hs swagger docs generated by Servanthttps://olive.well-typed.com/swagger-ui/#/default/runComputeQualifies the input to be translated to lam4 |
I had been resisting the proposal to have the IDE update the decision service backend directly because I had been thinking of the IDE as a more generic 'playground' component, but I'm starting to see see how we might think of this direct updating of the Servant backend as a 'cloud integration' component of the IDE. I'm starting to lean towards that. I will update the diagram if I end up going with that. |
i revised the diagram slightly to highlight the parts that we are showing in today's internal tech demo. |
I have in mind something like
I'd like us to focus on getting the highlighted path working initially, for purposes of a canned demo.
PLAYGROUND DEMO
I start by talking to ChatGPT and asking a question that runs against the Servant API. I get a response.
I say, "hang on, that's not quite right. I need to edit that rule."
I open a browser tab to a web-based IDE, where the text of an L4 program is shown.
Ideally, that web-based IDE is not the Natural4 spreadsheet, but something based on Simala or Lam4.
I edit the text of the program, and hit save.
The edit will be very trivial, like,
(walks && (eats || drinks))
becomes(walks || (eats && drinks))
That kicks off the highlighted toolchain, resulting in a refresh to the API server.
I go back to ChatGPT and repeat the question, and see that the answer has changed due to the change in logic.
ROYALFLUSH DEMO:
I use the IDE to edit the business logic of the RoyalFlush app.
After tweaking the rules, I go back to the RoyalFlush web app and upload a new PDF; the new logic runs on that PDF.
The IDE saves a new Lam4 program to the RoyalFlush backend using theYM is starting to see what Meng had in mind; YM is now leaning towards Meng's original proposal to just have the IDE update the decision service with the new program directly.saveOverrides
API.After the
saveOverrides
API saves the new Lam4 program, the RoyalFlush server saves the program, and PUT uploads it to the Servant backend which overwrites the program.OUT OF SCOPE:
The edit is less trivial; I change the input terms to include
dances
.I go back to ChatGPT and repeat the question, and need to give
dances
as an input.This is out of scope because rebuilding the schema for OpenAI in an automated way is not working on their end right now.
We see that the answer to the question has changed, because the L4 program has changed.
future work:
The text was updated successfully, but these errors were encountered: