-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
roadmap: Jan has revamped Remote Engines (e.g. OpenAI, Anthropic etc) #3786
Comments
Goal: Clear Eng Spec for Providers Scope
Related |
Jan ProvidersLocal ProviderCurrently, the local extension still has to manage processes itself, which involves utilizing third-party frameworks such as Node.js (child_process) for building functions. What if we build Jan on mobile we have to cover extensions as well. It would be better to move these parts to Core module and frontend will just need to use it’s API. Local Provider will need to execute a command to run its program. Therefore, the command and arguments will be defined, while the rest will be delegated to the super class. Lifecycle:
Examples class CortexProvider extends LocalProvider {
async onLoad() {
// The Run is implemented from the core module
// then the spawn process will be maintained by the watchdog
this.run("cortex", [ "start", "--port", "39291" ], { cwd: "./", env: { } })
}
async loadModel() {
// Can be a http request, socket or grpc
this.post("/v1/model/start", { mode: "llama3.2" })
}
}
Remove Provider
Draw.iohttps://drive.google.com/file/d/1pl9WjCzKl519keva85aHqUhx2u0onVf4/view?usp=sharing
Provider Interface and abstraction
Registered models will be stored in an in-memory store, accessible from other extensions( The core module also exposes extensive APIs, such as The UI of the model should be aligned with the model object, minimize decorations (e.g. model icon), and avoid introducing various types of model DTOs. Each Provider Extension should be a separate repo?Extensions installation is a straightforward process that requires minimal effort.
|
@louis-jan We can start working on this refactor, and make adjustments on the edges. Thank you for the clear spec! |
Goal
Note: This Epic has changed multiple times, as our architecture has also changed
A lot of the early comments are referring to a different context
e.g. "Provider Abstraction" in Jan
Tasklist
Jan
transformReq
,transformResp
• [x] Support for Prompt Caching:
Backend
Remote APIs to Support
Popular
• feat: Use OpenRouter Default Model instead of OpenRouter/auto #3110
• feat: Provider Extension - OpenRouter #3452
• feat: Add specific model selection for OpenRouter provider #3582
• bug: cannot seem to add more Openrouter remote models #2752
- idea: Add Claude Prompt Caching Support to Jan #3715
- bug: cannot seem to add more Openrouter remote models #2752
Deprioritized
The text was updated successfully, but these errors were encountered: