This is an automated email from the ASF dual-hosted git repository. xtsong pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/flink-agents.git
commit 83ce09bd29a24d35965f049bfd9f895b4942c907 Author: youjin <[email protected]> AuthorDate: Mon Jan 12 13:48:38 2026 +0800 [runtime] Support using JavaChatModelConnection directly in Python --- .../flink_agents/runtime/java/java_chat_model.py | 43 +++++++++++++++++----- 1 file changed, 33 insertions(+), 10 deletions(-) diff --git a/python/flink_agents/runtime/java/java_chat_model.py b/python/flink_agents/runtime/java/java_chat_model.py index a30e54c..f4501e8 100644 --- a/python/flink_agents/runtime/java/java_chat_model.py +++ b/python/flink_agents/runtime/java/java_chat_model.py @@ -24,6 +24,7 @@ from flink_agents.api.chat_models.java_chat_model import ( JavaChatModelConnection, JavaChatModelSetup, ) +from flink_agents.api.resource import ResourceType from flink_agents.api.tools.tool import Tool @@ -36,14 +37,27 @@ class JavaChatModelConnectionImpl(JavaChatModelConnection): """ - j_resource: Any + _j_resource: Any + _j_resource_adapter: Any + + def __init__(self, j_resource: Any, j_resource_adapter: Any, **kwargs: Any) -> None: + """Creates a new JavaChatModelSetup. + + Args: + j_resource: The Java resource object + j_resource_adapter: The Java resource adapter for method invocation + **kwargs: Additional keyword arguments + """ + super().__init__(**kwargs) + self._j_resource=j_resource + self._j_resource_adapter=j_resource_adapter @override def chat( - self, - messages: Sequence[ChatMessage], - tools: List[Tool] | None = None, - **kwargs: Any, + self, + messages: Sequence[ChatMessage], + tools: List[Tool] | None = None, + **kwargs: Any, ) -> ChatMessage: """Chat method that throws UnsupportedOperationException. @@ -51,12 +65,21 @@ class JavaChatModelConnectionImpl(JavaChatModelConnection): Chat operations should be performed on the Java side using the underlying Java chat model object. """ - err_msg = ( - "Chat method of JavaChatModelConnection cannot be called directly from Python runtime. " - "This connection serves as a Java resource wrapper only. " - "Chat operations should be performed on the Java side using the underlying Java chat model object." + java_messages = [ + self._j_resource_adapter.fromPythonChatMessage(message) + for message in messages + ] + java_tools = [ + self._j_resource_adapter.getResource(tool.name, ResourceType.TOOL.value) for tool in tools + ] + j_response_message = self._j_resource.chat(java_messages, java_tools, kwargs) + + # Convert Java response back to Python format + from flink_agents.runtime.python_java_utils import ( + from_java_chat_message, ) - raise NotImplementedError(err_msg) + + return from_java_chat_message(j_response_message) class JavaChatModelSetupImpl(JavaChatModelSetup):
