svilupp / PromptingTools.jl

Streamline your life using PromptingTools.jl, the Julia package that simplifies interacting with large language models.
https://svilupp.github.io/PromptingTools.jl/dev/
MIT License
119 stars 13 forks source link

Discussion: What should go into PromptingToolsCore? #145

Open svilupp opened 5 months ago

svilupp commented 5 months ago

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:

For a given type, let's say AIMessage, what functions should be in the core package?

Any thoughts?

cpfiffer commented 4 months ago

Core package (GenerativeBase.jl or something):

PromptingTools.jl:

RAGTools.jl:

AgentTools.jl

svilupp commented 4 months ago

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.

jpsamaroo commented 4 months ago

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!