fix(model): Fix reasoning output bug (#2405)

This commit is contained in:
Fangyin Cheng 2025-03-06 16:08:14 +08:00 committed by GitHub
parent bfd7fe8888
commit 2697aba4f5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 33 additions and 12 deletions

View File

@ -1,4 +1,4 @@
from typing import TYPE_CHECKING, Dict, Type, TypeVar from typing import TYPE_CHECKING, Dict, Optional, Type, TypeVar
import dbgpt_serve.datasource.serve import dbgpt_serve.datasource.serve
from dbgpt.component import SystemApp from dbgpt.component import SystemApp
@ -82,8 +82,10 @@ def register_serve_apps(
serve_configs = {s.get_type_value(): s for s in app_config.serves} serve_configs = {s.get_type_value(): s for s in app_config.serves}
system_app.config.set("dbgpt.app.global.language", app_config.system.language) system_app.config.set("dbgpt.app.global.language", app_config.system.language)
global_api_keys: Optional[str] = None
if app_config.system.api_keys: if app_config.system.api_keys:
system_app.config.set("dbgpt.app.global.api_keys", app_config.system.api_keys) global_api_keys = ",".join(app_config.system.api_keys)
system_app.config.set("dbgpt.app.global.api_keys", global_api_keys)
if app_config.system.encrypt_key: if app_config.system.encrypt_key:
system_app.config.set( system_app.config.set(
"dbgpt.app.global.encrypt_key", app_config.system.encrypt_key "dbgpt.app.global.encrypt_key", app_config.system.encrypt_key
@ -104,6 +106,7 @@ def register_serve_apps(
dbgpt_serve.prompt.serve.ServeConfig, dbgpt_serve.prompt.serve.ServeConfig,
default_user="dbgpt", default_user="dbgpt",
default_sys_code="dbgpt", default_sys_code="dbgpt",
api_keys=global_api_keys,
), ),
) )
# ################################ Prompt Serve Register End ###################### # ################################ Prompt Serve Register End ######################
@ -120,6 +123,7 @@ def register_serve_apps(
ConversationServe.name, ConversationServe.name,
dbgpt_serve.conversation.serve.ServeConfig, dbgpt_serve.conversation.serve.ServeConfig,
default_model=app_config.models.default_llm, default_model=app_config.models.default_llm,
api_keys=global_api_keys,
), ),
) )
# ################################ Conversation Serve Register End ################ # ################################ Conversation Serve Register End ################
@ -135,6 +139,7 @@ def register_serve_apps(
FlowServe.name, FlowServe.name,
dbgpt_serve.flow.serve.ServeConfig, dbgpt_serve.flow.serve.ServeConfig,
encrypt_key=app_config.system.encrypt_key, encrypt_key=app_config.system.encrypt_key,
api_keys=global_api_keys,
), ),
) )
@ -163,6 +168,7 @@ def register_serve_apps(
max_chunks_once_load=rag_config.max_chunks_once_load, max_chunks_once_load=rag_config.max_chunks_once_load,
max_threads=rag_config.max_threads, max_threads=rag_config.max_threads,
rerank_top_k=rag_config.rerank_top_k, rerank_top_k=rag_config.rerank_top_k,
api_keys=global_api_keys,
), ),
) )
@ -179,6 +185,7 @@ def register_serve_apps(
serve_configs, serve_configs,
DatasourceServe.name, DatasourceServe.name,
dbgpt_serve.datasource.serve.ServeConfig, dbgpt_serve.datasource.serve.ServeConfig,
api_keys=global_api_keys,
), ),
) )
@ -191,7 +198,10 @@ def register_serve_apps(
system_app.register( system_app.register(
FeedbackServe, FeedbackServe,
config=get_config( config=get_config(
serve_configs, FeedbackServe.name, dbgpt_serve.feedback.serve.ServeConfig serve_configs,
FeedbackServe.name,
dbgpt_serve.feedback.serve.ServeConfig,
api_keys=global_api_keys,
), ),
) )
# ################################ Chat Feedback Register End ##################### # ################################ Chat Feedback Register End #####################
@ -203,7 +213,10 @@ def register_serve_apps(
system_app.register( system_app.register(
DbgptsHubServe, DbgptsHubServe,
config=get_config( config=get_config(
serve_configs, DbgptsHubServe.name, dbgpt_serve.dbgpts.hub.serve.ServeConfig serve_configs,
DbgptsHubServe.name,
dbgpt_serve.dbgpts.hub.serve.ServeConfig,
api_keys=global_api_keys,
), ),
) )
# Register serve dbgptsmy # Register serve dbgptsmy
@ -212,7 +225,10 @@ def register_serve_apps(
system_app.register( system_app.register(
DbgptsMyServe, DbgptsMyServe,
config=get_config( config=get_config(
serve_configs, DbgptsMyServe.name, dbgpt_serve.dbgpts.my.serve.ServeConfig serve_configs,
DbgptsMyServe.name,
dbgpt_serve.dbgpts.my.serve.ServeConfig,
api_keys=global_api_keys,
), ),
) )
# ################################ DbGpts Register End ############################ # ################################ DbGpts Register End ############################
@ -233,6 +249,7 @@ def register_serve_apps(
host=webserver_host, host=webserver_host,
port=webserver_port, port=webserver_port,
local_storage_path=local_storage_path, local_storage_path=local_storage_path,
api_keys=global_api_keys,
), ),
) )
@ -252,6 +269,7 @@ def register_serve_apps(
dbgpt_serve.evaluate.serve.ServeConfig, dbgpt_serve.evaluate.serve.ServeConfig,
embedding_model=llm_configs.default_embedding, embedding_model=llm_configs.default_embedding,
similarity_top_k=rag_config.similarity_top_k, similarity_top_k=rag_config.similarity_top_k,
api_keys=global_api_keys,
), ),
) )
# ################################ Evaluate Serve Register End #################### # ################################ Evaluate Serve Register End ####################
@ -263,7 +281,10 @@ def register_serve_apps(
system_app.register( system_app.register(
LibroServe, LibroServe,
config=get_config( config=get_config(
serve_configs, LibroServe.name, dbgpt_serve.libro.serve.ServeConfig serve_configs,
LibroServe.name,
dbgpt_serve.libro.serve.ServeConfig,
api_keys=global_api_keys,
), ),
) )
@ -280,5 +301,6 @@ def register_serve_apps(
ModelServe.name, ModelServe.name,
dbgpt_serve.model.serve.ServeConfig, dbgpt_serve.model.serve.ServeConfig,
model_storage=app_config.service.web.model_storage, model_storage=app_config.service.web.model_storage,
api_keys=global_api_keys,
), ),
) )

View File

@ -459,14 +459,13 @@ class ModelOutput:
elif text: elif text:
# Only text # Only text
content = MediaContent.build_text(text) content = MediaContent.build_text(text)
else: elif is_reasoning_model or thinking:
# Build a empty thinking content # Build a empty thinking content
# Handle empty data # Handle empty data
content = ( content = MediaContent.build_thinking(thinking)
MediaContent.build_thinking(thinking) else:
if is_reasoning_model content = MediaContent.build_text("")
else MediaContent.build_text("")
)
return cls( return cls(
error_code=error_code, error_code=error_code,
content=content, content=content,