-
Notifications
You must be signed in to change notification settings - Fork 0
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
LLM
: Add llm subsystem
#51
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. LGTM
For Futur's work, maybe change the model to enum |
This is not possible, as it is an identifier from a config fille. The model identifier is therefore dynamic |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me for a first Version, approved !
Very rough draft for early review
Motivation
For Pyris V2 we need a robust and extendable subsystem for handling LLMs. This system will support different LLM selection strategies in the future, which are all accessible through the same Interface.
Description
Class Diagram:
Explanation:
RequestHandlerInterface
is the entrypoint / Facade for the entire subsystemBasicRequestHandler
is the first simple implementation of it, which simply forwards to one specified LLMIrisMessage
is our own message format, which we can then convert to/from e.g. Langchain messagesrole
andtext
, but in the near future also supports images and possibly moreLlmManager
is a singleton, which stores/handles all the different LLMsLlmWrapperInterface
s and their implementations are the direct connection to the LLMs and handle any vendor specific logic (i.e. converting messages)There is also the follow up #52 to improve the config file parsing