mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-07-17 11:07:11 +08:00
feat(web): add custom provider support for embedding & vision models, and fix memory_get Windows path bug!
1. Embedding model: support custom provider - Add "custom" entry to EMBEDDING_VENDORS with supports_dim_param=False - Parse custom:<id> credentials and model fallback in agent_initializer - Expand custom_providers as custom:<id> entries in Web UI dropdown 2. Vision model: support custom provider - Add custom:<id> routing in _route_by_provider_id - Add _build_custom_provider reading credentials from custom_providers - Expand custom_providers in Web UI dropdown, add validation in _set_vision 3. Fix memory_get Windows path validation bug! - str.startswith(path+'/') always False on Windows due to backslashes, So All Users can not use "memory_get" tool in Windows. - Use os.path.realpath + os.sep, consistent with MemoryService 4. Fix historical needsModel:false bug preventing embedding provider switch - Change embedding needsModel to true in console.js - Support custom:<id> resolution in cow_cli /memory status, also for adding custom provider support Closes #2908, Closes #2880
This commit is contained in:
@@ -1334,8 +1334,19 @@ class CowCliPlugin(Plugin):
|
||||
return "linkai (legacy)", "text-embedding-3-small", 1536
|
||||
return "(legacy)", None, None
|
||||
|
||||
meta = EMBEDDING_VENDORS.get(provider_key) or {}
|
||||
# Since we have added support for custom providers for vector models, this part should be modified accordingly:
|
||||
# Custom providers ("custom:<id>") resolve to the "custom" vendor key.
|
||||
resolved_key = "custom" if provider_key.startswith("custom:") else provider_key
|
||||
meta = EMBEDDING_VENDORS.get(resolved_key) or {}
|
||||
model = cfg_model or meta.get("default_model")
|
||||
# Custom provider model fallback: read from custom_providers entry.
|
||||
if not model and provider_key.startswith("custom:"):
|
||||
from models.custom_provider import parse_custom_bot_type, get_custom_providers, _find_provider_by_id
|
||||
_, custom_id = parse_custom_bot_type(provider_key)
|
||||
if custom_id:
|
||||
entry = _find_provider_by_id(get_custom_providers(), custom_id)
|
||||
if entry and entry.get("model"):
|
||||
model = entry["model"]
|
||||
dim = cfg_dim if cfg_dim > 0 else meta.get("default_dimensions")
|
||||
return provider_key, model, dim
|
||||
|
||||
|
||||
Reference in New Issue
Block a user