mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-07-09 12:54:47 +08:00
Fix: display model_id in memory_list (#16567)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user