acsresearch / interlab

MIT License
17 stars 2 forks source link

Stable user API and ease of use (e.g. incl. within google colab) #5

Closed gavento closed 1 year ago

gavento commented 1 year ago

Includes some stability of the log JSON (for better backwards compatibility vs future UI updates and other tools), and having examples / starting templates for users based on that.

If we run experiments in Google colab, I expect it to have an issue with the UI (as the port opened on the colab server is not accessible). @spirali would this be solved by Jupyter-like lab UI-embed into colab? Or is there some other solution? (Or another notebook hosting? ;-)

gavento commented 1 year ago

Mostly achieved after #7 but with some outstanding bikeshedding:

gavento commented 1 year ago

More refactoring, naming and bikeshedding!

Mixture of high-level with some low-level naming bits. Incomplete but good to be criticized!

Some future bits that will need placing

Generators

I want users and prospective developers to have a mental model of this being both:

  1. Approachable and batteries-included with good discoverability (we are mostly good on that)
  2. Well-structured to serve as basis for future development and other libs (to attract cooperation rather than people making their own libs just because they don't like our one-shot-actor, UI server, JSON querying helpers, some detail about engine backend, ...
    • While my taste is somewhat against prematurely-branching source code trees with mostly empty directories and a lot of separation, I would lean more in that direction to encourage more development - in a sense to create space for it.
    • Same goes for having experimental and contrib modules - to invite people to just write their concrete (and unpolished) semi-general LLM agents and their modules

@spirali @klao please add more:

spirali commented 1 year ago

Structure

I agree with new code structure (especially to move server stuff outside of context module)

I would make "actors" only for generic abstract API. And then have different module for all actor implementations with some substrucutre (I do not have right name for the module now).

Activations

Activation vectors will probably needs one extra feature: storing binary data next to context jsons and have a link to these files in contexts. We cannot probably store it directly into context json because of size.

Renaming

The only thing that is in my mind is "add_event" for instant context, that now have clash with "Events" in memory subsystem.

gavento commented 1 year ago

Closed by #29