Open svilupp opened 5 months ago
Core package (GenerativeBase.jl or something):
content(message)
, tokens(message)
, etc. pprint
and last_output
are great candidates here.PromptingTools.jl:
RAGTools.jl:
AgentTools.jl
That all makes sense to me (except maybe for the OpenAI calling being in GenerativeBase, because I could see a lot of stuff creep in with it like user preferences/ENV etc).
How about some of the trickier pieces:
As part of the re-structure, it would probably also make sense to separate user preference setting (ENV stuff) from model registry (and maybe make model registry load from a file for easy manipulation / customization).
EDIT: I think I would prefer a package names that would be a bit narrower - I feel like “generative” is too broad and these few primitives (which are mostly for LLMs) do not deserve that.
IMO PromptingTools is a great name! That's basically what you want - tools for working with and submitting prompts to LLMs or other models that take a "prompt".
I feel like one of the biggest features for working with LLMs is just having a consistent prompting interface to all kinds of models - and PT already has this! Making it easy to switch between models, and having some basic tools for stuff like aiclassify
, aiscan
, etc., seems like a nice entrypoint for other packages to build on top of.
(and maybe make model registry load from a file for easy manipulation / customization).
Yes please!
As discussed previously, we should create a "core" package that defines the many types and interfaces.
What would be the scope of such a package:
render
)pprint
,last_output
)For a given type, let's say AIMessage, what functions should be in the core package?
Any thoughts?