diff --git a/api/core/ops/entities/config_entity.py b/api/core/ops/entities/config_entity.py index 447f668e26557a..221e6239ab9302 100644 --- a/api/core/ops/entities/config_entity.py +++ b/api/core/ops/entities/config_entity.py @@ -21,7 +21,6 @@ class LangfuseConfig(BaseTracingConfig): """ public_key: str secret_key: str - project_key: str host: str = 'https://api.langfuse.com' @field_validator("host") diff --git a/api/services/ops_service.py b/api/services/ops_service.py index 0650f2cb27f1ce..35aa6817e11cc8 100644 --- a/api/services/ops_service.py +++ b/api/services/ops_service.py @@ -26,16 +26,15 @@ def get_tracing_app_config(cls, app_id: str, tracing_provider: str): decrypt_tracing_config = OpsTraceManager.decrypt_tracing_config( tenant_id, tracing_provider, trace_config_data.tracing_config ) + new_decrypt_tracing_config = OpsTraceManager.obfuscated_decrypt_token(tracing_provider, decrypt_tracing_config) + if tracing_provider == "langfuse" and ( "project_key" not in decrypt_tracing_config or not decrypt_tracing_config.get("project_key") ): project_key = OpsTraceManager.get_trace_config_project_key(decrypt_tracing_config, tracing_provider) - decrypt_tracing_config["project_key"] = project_key - - decrypt_tracing_config = OpsTraceManager.obfuscated_decrypt_token(tracing_provider, decrypt_tracing_config) - - trace_config_data.tracing_config = decrypt_tracing_config + new_decrypt_tracing_config.update({"project_key": project_key}) + trace_config_data.tracing_config = new_decrypt_tracing_config return trace_config_data.to_dict() @classmethod @@ -79,7 +78,7 @@ def create_tracing_app_config(cls, app_id: str, tracing_provider: str, tracing_c # get tenant id tenant_id = db.session.query(App).filter(App.id == app_id).first().tenant_id tracing_config = OpsTraceManager.encrypt_tracing_config(tenant_id, tracing_provider, tracing_config) - if tracing_provider == "langfuse": + if tracing_provider == "langfuse" and project_key: tracing_config["project_key"] = project_key trace_config_data = TraceAppConfig( app_id=app_id,