Fix: display model_id in memory_list (#16567)

This commit is contained in:
Lynn
2026-07-02 20:28:27 +08:00
committed by GitHub
parent 9a6d30bfe6
commit bc54903bf6
5 changed files with 19 additions and 37 deletions

View File

@@ -313,25 +313,6 @@ async def create_provider_instance(tenant_id: str, provider_id_or_name: str, ins
if not success:
return False, msg
# For SoMark, embed OCR config from model_info into the api_key JSON so
# SoMarkOcrModel.__init__ can read it via the existing key → api_key_payload
# path. This avoids changing the deprecated LLMBundle in tenant_llm_service.py.
if provider_name == "SoMark" and model_info:
cfg = {}
if api_key_str:
try:
cfg = json.loads(api_key_str)
except Exception:
pass
if not isinstance(cfg, dict):
cfg = {}
for model in model_info:
if model.get("extra"):
cfg.update(model["extra"])
if base_url:
cfg["SOMARK_BASE_URL"] = base_url
api_key_str = json.dumps(cfg)
success, msg = await verify_api_key(provider_name, api_key, base_url, region, model_info)
if not success:
return False, msg

View File

@@ -279,7 +279,7 @@ def get_model_config_from_provider_instance(tenant_id, model_type: str | enum.En
if provider_name.lower() == "somark":
# SoMark/OCR factories read parser config (somark_*, parse_method, ...)
# from model_config["extra"]; see tenant_llm_service.LLMBundle OCR path.
model_config["extra"] = model_extra.get("ocr_config", model_extra)
model_config["extra"] = model_extra
if api_key_payload is not None:
model_config["api_key_payload"] = api_key_payload

View File

@@ -84,6 +84,8 @@ class MemoryService(CommonService):
User.nickname.alias("owner_name"),
cls.model.memory_type,
cls.model.storage_type,
cls.model.embd_id,
cls.model.llm_id,
cls.model.permissions,
cls.model.description,
cls.model.create_time,

View File

@@ -259,19 +259,12 @@ class SoMarkOcrModel(Base, SoMarkParser):
return bool(raw)
return str(raw).strip().lower() in {"1", "true", "yes", "on"}
def _resolve_int(ui_key: str, env_key: str, default: int) -> int:
raw = _resolve(ui_key, env_key, default)
try:
return int(raw)
except (TypeError, ValueError):
return default
base_url = _resolve(
"somark_base_url",
"SOMARK_BASE_URL",
kwargs.get("base_url", "https://somark.tech/api/v1"),
)
api_key = _resolve("somark_api_key", "SOMARK_API_KEY", key_as_secret)
api_key = _resolve("api_key", "SOMARK_API_KEY", key_as_secret)
image_format = _resolve("somark_image_format", "SOMARK_IMAGE_FORMAT", "url")
formula_format = _resolve("somark_formula_format", "SOMARK_FORMULA_FORMAT", "latex")
table_format = _resolve("somark_table_format", "SOMARK_TABLE_FORMAT", "html")
@@ -293,6 +286,8 @@ class SoMarkOcrModel(Base, SoMarkParser):
redacted_config[k] = v
logging.info(f"Parsed SoMark config (sensitive fields redacted): {redacted_config}")
self.api_key = api_key
self.base_url = base_url
SoMarkParser.__init__(
self,
base_url=base_url,

View File

@@ -189,6 +189,7 @@ export const useSubmitBedrock = () => {
export const useSubmitSoMark = () => {
const [saveLoading, setSaveLoading] = useState(false);
const submitProviderInstance = useSubmitProviderInstance();
const verifyConnection = useVerifyConnection();
const {
visible: somarkVisible,
hideModal: hideSoMarkModal,
@@ -204,7 +205,7 @@ export const useSubmitSoMark = () => {
instance_name: payload.instance_name,
llm_factory: LLMFactory.SoMark,
api_key: payload.somark_api_key || '',
api_base: payload.somark_base_url,
base_url: payload.somark_base_url,
max_tokens: 0,
model_info: [
{
@@ -232,16 +233,19 @@ export const useSubmitSoMark = () => {
],
};
try {
if (isVerify) {
return verifyConnection(
LLMFactory.SoMark,
req.api_key,
req.base_url,
undefined,
req.model_info as IModelInfo[],
);
}
const ret = await submitProviderInstance(
req as IAddProviderInstanceRequestBody,
isVerify,
false,
);
if (isVerify) {
return {
isValid: !!ret.data?.success,
logs: ret.data?.message,
} as VerifyResult;
}
if (ret.code === 0) {
hideSoMarkModal();
return true;
@@ -253,7 +257,7 @@ export const useSubmitSoMark = () => {
}
}
},
[submitProviderInstance, hideSoMarkModal, setSaveLoading],
[submitProviderInstance, hideSoMarkModal, setSaveLoading, verifyConnection],
);
return {