-
Notifications
You must be signed in to change notification settings - Fork 26
Description
I think it would be helpful to take the requirements doc and derive a development roadmap. I think what exactly is the MVP can be defined as this is thought through, but isn't my initial intent to define. The phases are prioritized based on the greater WP AI initiative, with the goal being that we can move to other projects within that effort faster, without having to wait for this to be done in its entirety. Lastly, this is intended to be iterative with no backwards compatibility issues.
I'm not sure if we want to update the requirements doc with any/all of this, or if it's best to consider them separate. I'm good either way.
0.1.0: Basic Universal Client
Goal: Providers can register models with the Client, and the client is capable of the most fundamental and common tasks and model configurations.
- Client provides a unified API for interacting with various models
- Basic model parameters (e.g. temperature and top P) are standardized
- Providers and models can be registered
- Basic AI modalities
- Text
- Image
- Audio
- Video
- Client can receive a chat history
- Tools can be defined and passed to the model
- Resources can be defined and passed to the model
- Registered models can specify whether they support tools and/or resources
- Model prompts support tool calls and results
- Structured output from AI
0.2.0: Battle testing improvements
Goal: With 0.1.0 out, others can begin testing. This release will provide basic API improvements and address any issues discovered during testing.
- All registered providers can be retrieved (see Allow retrieving all registered provider IDs from registry #79)
- Individual Messages can be fluently constructed (see Adds MessageBuilder class #83)
- Exceptions are distinct and catchable by implementing systems (see Implement Exception Hierarchy For Better Error Handling #78)
- Bugs discovered in testing are addressed
0.3.0: Streaming support
Goal: Client is capable of providing a streamed chat UX.
- Response streaming is supported
0.4.0: Embedding
Goal: The client is capable of supporting embeds for use with vector databases
- Embeddings can be generated by the client
No Gos
The following are ideas and directions we are intentionally not taking at this time. Some indefinitely and others in the meantime
- The client is not responsible for persisting chat history in any way. It can receive chat history for context, but it's up to the implementing code to persist it.