From 87661bb3d306ee0aaa5f6885b345f95731c97d3d Mon Sep 17 00:00:00 2001 From: zhangqianze Date: Fri, 27 Dec 2024 20:59:33 +0800 Subject: [PATCH] feat: adapt to 0.6 --- Taskfile.yml | 2 +- agents/examples/default/manifest.json | 12 ++-- agents/examples/default/property.json | 58 ------------------- agents/examples/demo/manifest.json | 6 +- agents/examples/experimental/manifest.json | 6 +- .../bak/litellm_python/manifest.json | 2 +- .../extension/agora_rtm_wrapper/manifest.json | 2 +- .../manifest.json | 2 +- .../aliyun_text_embedding/manifest.json | 2 +- .../bedrock_llm_python/manifest.json | 2 +- .../bingsearch_tool_python/manifest.json | 2 +- .../extension/cartesia_tts/extension.py | 2 +- .../extension/cartesia_tts/manifest.json | 2 +- .../extension/cosy_tts_python/extension.py | 2 +- .../extension/cosy_tts_python/manifest.json | 2 +- .../extension/coze_python_async/extension.py | 2 +- .../extension/coze_python_async/manifest.json | 2 +- .../deepgram_asr_python/extension.py | 4 +- .../deepgram_asr_python/manifest.json | 2 +- .../extension/dify_python/extension.py | 2 +- .../extension/dify_python/manifest.json | 2 +- .../extension/elevenlabs_tts/manifest.json | 2 +- .../elevenlabs_tts_python/extension.py | 2 +- .../elevenlabs_tts_python/manifest.json | 2 +- .../extension/fashionai/manifest.json | 2 +- .../extension/fashionai/src/extension.py | 10 ++-- .../extension/file_chunker/manifest.json | 2 +- .../extension/fish_audio_tts/manifest.json | 2 +- .../extension/gemini_llm_python/manifest.json | 2 +- .../extension/gemini_v2v_python/extension.py | 2 +- .../extension/gemini_v2v_python/manifest.json | 2 +- .../extension/glue_python_async/extension.py | 2 +- .../extension/glue_python_async/manifest.json | 2 +- .../http_server_python/manifest.json | 2 +- .../interrupt_detector/manifest.json | 2 +- .../interrupt_detector_python/manifest.json | 2 +- .../llama_index_chat_engine/manifest.json | 2 +- .../extension/message_collector/manifest.json | 2 +- .../message_collector_rtm/manifest.json | 2 +- .../extension/minimax_tts/manifest.json | 2 +- .../extension/minimax_tts_python/extension.py | 2 +- .../minimax_tts_python/manifest.json | 2 +- .../extension/minimax_v2v_python/extension.py | 10 ++-- .../minimax_v2v_python/manifest.json | 2 +- .../extension/openai_chatgpt/manifest.json | 2 +- .../openai_chatgpt_python/extension.py | 2 +- .../openai_chatgpt_python/manifest.json | 2 +- .../extension/openai_v2v_python/extension.py | 2 +- .../extension/openai_v2v_python/manifest.json | 2 +- .../extension/polly_tts/extension.py | 2 +- .../extension/polly_tts/manifest.json | 2 +- .../extension/qwen_llm_python/manifest.json | 2 +- .../transcribe_asr_python/manifest.json | 2 +- .../extension/tsdb_firestore/manifest.json | 2 +- .../vision_analyze_tool_python/manifest.json | 2 +- .../vision_tool_python/manifest.json | 2 +- .../weatherapi_tool_python/extension.py | 2 +- .../weatherapi_tool_python/manifest.json | 2 +- .../interface/ten_ai_base/config.py | 34 ++++++++++- .../system/ten_ai_base/manifest.json | 2 +- playground/src/middleware.tsx | 2 +- 61 files changed, 111 insertions(+), 135 deletions(-) diff --git a/Taskfile.yml b/Taskfile.yml index 82d1664af..28e11ffd1 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -43,7 +43,7 @@ tasks: desc: run tman dev http server for graph designer dir: ./agents cmds: - - tman dev-server + - tman designer run: desc: run servers diff --git a/agents/examples/default/manifest.json b/agents/examples/default/manifest.json index bc424d456..7a33b2958 100644 --- a/agents/examples/default/manifest.json +++ b/agents/examples/default/manifest.json @@ -1,27 +1,27 @@ { "type": "app", "name": "agent_demo", - "version": "0.5.0", + "version": "0.6.0", "dependencies": [ { "type": "system", "name": "ten_runtime_go", - "version": "0.5" + "version": "0.6" }, { "type": "extension", "name": "py_init_extension_cpp", - "version": "0.5" + "version": "0.6" }, { "type": "extension", "name": "agora_rtc", - "version": "=0.10.0-rc3" + "version": "=0.10.1" }, { "type": "extension", "name": "agora_sess_ctrl", - "version": "=0.4.0-rc1" + "version": "=0.4.1" }, { "type": "system", @@ -31,7 +31,7 @@ { "type": "extension", "name": "azure_tts", - "version": "=0.7.0" + "version": "=0.7.1" }, { "type": "extension", diff --git a/agents/examples/default/property.json b/agents/examples/default/property.json index 02869ba54..5acef1f86 100644 --- a/agents/examples/default/property.json +++ b/agents/examples/default/property.json @@ -95,14 +95,12 @@ ], "connections": [ { - "extension_group": "default", "extension": "agora_rtc", "cmd": [ { "name": "on_user_joined", "dest": [ { - "extension_group": "chatgpt", "extension": "llm" } ] @@ -111,7 +109,6 @@ "name": "on_user_left", "dest": [ { - "extension_group": "chatgpt", "extension": "llm" } ] @@ -120,7 +117,6 @@ "name": "on_connection_failure", "dest": [ { - "extension_group": "chatgpt", "extension": "llm" } ] @@ -131,7 +127,6 @@ "name": "pcm_frame", "dest": [ { - "extension_group": "stt", "extension": "stt" } ] @@ -139,18 +134,15 @@ ] }, { - "extension_group": "stt", "extension": "stt", "data": [ { "name": "text_data", "dest": [ { - "extension_group": "default", "extension": "interrupt_detector" }, { - "extension_group": "transcriber", "extension": "message_collector" } ] @@ -158,14 +150,12 @@ ] }, { - "extension_group": "chatgpt", "extension": "llm", "cmd": [ { "name": "flush", "dest": [ { - "extension_group": "tts", "extension": "tts" } ] @@ -174,7 +164,6 @@ "name": "tool_call", "dest": [ { - "extension_group": "default", "extension": "weatherapi_tool_python" } ] @@ -185,11 +174,9 @@ "name": "text_data", "dest": [ { - "extension_group": "tts", "extension": "tts" }, { - "extension_group": "transcriber", "extension": "message_collector" } ] @@ -197,14 +184,12 @@ ] }, { - "extension_group": "transcriber", "extension": "message_collector", "data": [ { "name": "data", "dest": [ { - "extension_group": "default", "extension": "agora_rtc" } ] @@ -212,14 +197,12 @@ ] }, { - "extension_group": "tts", "extension": "tts", "cmd": [ { "name": "flush", "dest": [ { - "extension_group": "default", "extension": "agora_rtc" } ] @@ -230,7 +213,6 @@ "name": "pcm_frame", "dest": [ { - "extension_group": "default", "extension": "agora_rtc" } ] @@ -238,14 +220,12 @@ ] }, { - "extension_group": "default", "extension": "interrupt_detector", "cmd": [ { "name": "flush", "dest": [ { - "extension_group": "chatgpt", "extension": "llm" } ] @@ -256,7 +236,6 @@ "name": "text_data", "dest": [ { - "extension_group": "chatgpt", "extension": "llm" } ] @@ -264,14 +243,12 @@ ] }, { - "extension_group": "default", "extension": "weatherapi_tool_python", "cmd": [ { "name": "tool_register", "dest": [ { - "extension_group": "chatgpt", "extension": "llm" } ] @@ -362,14 +339,12 @@ ], "connections": [ { - "extension_group": "default", "extension": "agora_rtc", "cmd": [ { "name": "on_user_joined", "dest": [ { - "extension_group": "chatgpt", "extension": "llm" } ] @@ -378,7 +353,6 @@ "name": "on_user_left", "dest": [ { - "extension_group": "chatgpt", "extension": "llm" } ] @@ -387,7 +361,6 @@ "name": "on_connection_failure", "dest": [ { - "extension_group": "chatgpt", "extension": "llm" } ] @@ -398,11 +371,9 @@ "name": "text_data", "dest": [ { - "extension_group": "default", "extension": "interrupt_detector" }, { - "extension_group": "transcriber", "extension": "message_collector" } ] @@ -410,14 +381,12 @@ ] }, { - "extension_group": "chatgpt", "extension": "llm", "cmd": [ { "name": "flush", "dest": [ { - "extension_group": "tts", "extension": "tts" } ] @@ -426,7 +395,6 @@ "name": "tool_call", "dest": [ { - "extension_group": "default", "extension": "weatherapi_tool_python" } ] @@ -437,11 +405,9 @@ "name": "text_data", "dest": [ { - "extension_group": "tts", "extension": "tts" }, { - "extension_group": "transcriber", "extension": "message_collector" } ] @@ -449,14 +415,12 @@ ] }, { - "extension_group": "transcriber", "extension": "message_collector", "data": [ { "name": "data", "dest": [ { - "extension_group": "default", "extension": "agora_rtc" } ] @@ -464,14 +428,12 @@ ] }, { - "extension_group": "tts", "extension": "tts", "cmd": [ { "name": "flush", "dest": [ { - "extension_group": "default", "extension": "agora_rtc" } ] @@ -482,7 +444,6 @@ "name": "pcm_frame", "dest": [ { - "extension_group": "default", "extension": "agora_rtc" } ] @@ -490,14 +451,12 @@ ] }, { - "extension_group": "default", "extension": "interrupt_detector", "cmd": [ { "name": "flush", "dest": [ { - "extension_group": "chatgpt", "extension": "llm" } ] @@ -508,7 +467,6 @@ "name": "text_data", "dest": [ { - "extension_group": "chatgpt", "extension": "llm" } ] @@ -516,14 +474,12 @@ ] }, { - "extension_group": "default", "extension": "weatherapi_tool_python", "cmd": [ { "name": "tool_register", "dest": [ { - "extension_group": "chatgpt", "extension": "llm" } ] @@ -589,14 +545,12 @@ ], "connections": [ { - "extension_group": "rtc", "extension": "agora_rtc", "audio_frame": [ { "name": "pcm_frame", "dest": [ { - "extension_group": "llm", "extension": "v2v" } ] @@ -607,7 +561,6 @@ "name": "on_user_joined", "dest": [ { - "extension_group": "llm", "extension": "v2v" } ] @@ -616,7 +569,6 @@ "name": "on_user_left", "dest": [ { - "extension_group": "llm", "extension": "v2v" } ] @@ -625,7 +577,6 @@ "name": "on_connection_failure", "dest": [ { - "extension_group": "llm", "extension": "v2v" } ] @@ -633,14 +584,12 @@ ] }, { - "extension_group": "llm", "extension": "v2v", "cmd": [ { "name": "flush", "dest": [ { - "extension_group": "rtc", "extension": "agora_rtc" } ] @@ -649,7 +598,6 @@ "name": "tool_call", "dest": [ { - "extension_group": "default", "extension": "bingsearch_tool_python" } ] @@ -660,7 +608,6 @@ "name": "text_data", "dest": [ { - "extension_group": "transcriber", "extension": "message_collector" } ] @@ -671,7 +618,6 @@ "name": "pcm_frame", "dest": [ { - "extension_group": "rtc", "extension": "agora_rtc" } ] @@ -679,14 +625,12 @@ ] }, { - "extension_group": "transcriber", "extension": "message_collector", "data": [ { "name": "data", "dest": [ { - "extension_group": "rtc", "extension": "agora_rtc" } ] @@ -694,14 +638,12 @@ ] }, { - "extension_group": "default", "extension": "bingsearch_tool_python", "cmd": [ { "name": "tool_register", "dest": [ { - "extension_group": "llm", "extension": "v2v" } ] diff --git a/agents/examples/demo/manifest.json b/agents/examples/demo/manifest.json index 2d19132cb..8d3577ab8 100644 --- a/agents/examples/demo/manifest.json +++ b/agents/examples/demo/manifest.json @@ -1,17 +1,17 @@ { "type": "app", "name": "agent_demo", - "version": "0.5.0", + "version": "0.6.0", "dependencies": [ { "type": "system", "name": "ten_runtime_go", - "version": "0.5" + "version": "0.6" }, { "type": "extension", "name": "py_init_extension_cpp", - "version": "0.5" + "version": "0.6" }, { "type": "extension", diff --git a/agents/examples/experimental/manifest.json b/agents/examples/experimental/manifest.json index 645f5e0a6..7dd57a4e0 100644 --- a/agents/examples/experimental/manifest.json +++ b/agents/examples/experimental/manifest.json @@ -1,17 +1,17 @@ { "type": "app", "name": "agent_experimental", - "version": "0.5.0", + "version": "0.6.0", "dependencies": [ { "type": "system", "name": "ten_runtime_go", - "version": "0.5" + "version": "0.6" }, { "type": "extension", "name": "py_init_extension_cpp", - "version": "0.5" + "version": "0.6" }, { "type": "extension", diff --git a/agents/ten_packages/bak/litellm_python/manifest.json b/agents/ten_packages/bak/litellm_python/manifest.json index b4cf07fcd..ab382bec7 100644 --- a/agents/ten_packages/bak/litellm_python/manifest.json +++ b/agents/ten_packages/bak/litellm_python/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "api": { diff --git a/agents/ten_packages/extension/agora_rtm_wrapper/manifest.json b/agents/ten_packages/extension/agora_rtm_wrapper/manifest.json index 760e40604..deb4ee1bd 100644 --- a/agents/ten_packages/extension/agora_rtm_wrapper/manifest.json +++ b/agents/ten_packages/extension/agora_rtm_wrapper/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_go", - "version": "0.5" + "version": "0.6" } ], "api": { diff --git a/agents/ten_packages/extension/aliyun_analyticdb_vector_storage/manifest.json b/agents/ten_packages/extension/aliyun_analyticdb_vector_storage/manifest.json index d8b33a2c0..3ba20fdc5 100644 --- a/agents/ten_packages/extension/aliyun_analyticdb_vector_storage/manifest.json +++ b/agents/ten_packages/extension/aliyun_analyticdb_vector_storage/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "api": { diff --git a/agents/ten_packages/extension/aliyun_text_embedding/manifest.json b/agents/ten_packages/extension/aliyun_text_embedding/manifest.json index bc08e56bd..c7cba56fe 100644 --- a/agents/ten_packages/extension/aliyun_text_embedding/manifest.json +++ b/agents/ten_packages/extension/aliyun_text_embedding/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "api": { diff --git a/agents/ten_packages/extension/bedrock_llm_python/manifest.json b/agents/ten_packages/extension/bedrock_llm_python/manifest.json index aa2ed38e4..41eda41ed 100644 --- a/agents/ten_packages/extension/bedrock_llm_python/manifest.json +++ b/agents/ten_packages/extension/bedrock_llm_python/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "api": { diff --git a/agents/ten_packages/extension/bingsearch_tool_python/manifest.json b/agents/ten_packages/extension/bingsearch_tool_python/manifest.json index 725d3f170..600f0039b 100644 --- a/agents/ten_packages/extension/bingsearch_tool_python/manifest.json +++ b/agents/ten_packages/extension/bingsearch_tool_python/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/extension/cartesia_tts/extension.py b/agents/ten_packages/extension/cartesia_tts/extension.py index 959013598..03a36b981 100644 --- a/agents/ten_packages/extension/cartesia_tts/extension.py +++ b/agents/ten_packages/extension/cartesia_tts/extension.py @@ -26,7 +26,7 @@ async def on_start(self, ten_env: AsyncTenEnv) -> None: try: await super().on_start(ten_env) ten_env.log_debug("on_start") - self.config = CartesiaTTSConfig.create(ten_env=ten_env) + self.config = await CartesiaTTSConfig.create_async(ten_env=ten_env) if not self.config.api_key: raise ValueError("api_key is required") diff --git a/agents/ten_packages/extension/cartesia_tts/manifest.json b/agents/ten_packages/extension/cartesia_tts/manifest.json index d616febae..df2b50a49 100644 --- a/agents/ten_packages/extension/cartesia_tts/manifest.json +++ b/agents/ten_packages/extension/cartesia_tts/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/extension/cosy_tts_python/extension.py b/agents/ten_packages/extension/cosy_tts_python/extension.py index a17a131a4..982476cfd 100644 --- a/agents/ten_packages/extension/cosy_tts_python/extension.py +++ b/agents/ten_packages/extension/cosy_tts_python/extension.py @@ -25,7 +25,7 @@ async def on_start(self, ten_env: AsyncTenEnv) -> None: await super().on_start(ten_env) ten_env.log_debug("on_start") - self.config = CosyTTSConfig.create(ten_env=ten_env) + self.config = await CosyTTSConfig.create_async(ten_env=ten_env) self.client = CosyTTS(self.config) asyncio.create_task(self._process_audio_data(ten_env)) diff --git a/agents/ten_packages/extension/cosy_tts_python/manifest.json b/agents/ten_packages/extension/cosy_tts_python/manifest.json index 73c3c40b0..30a3da788 100644 --- a/agents/ten_packages/extension/cosy_tts_python/manifest.json +++ b/agents/ten_packages/extension/cosy_tts_python/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/extension/coze_python_async/extension.py b/agents/ten_packages/extension/coze_python_async/extension.py index 39bf0d2fe..eb70133ea 100644 --- a/agents/ten_packages/extension/coze_python_async/extension.py +++ b/agents/ten_packages/extension/coze_python_async/extension.py @@ -105,7 +105,7 @@ async def on_start(self, ten_env: AsyncTenEnv) -> None: self.loop = asyncio.get_event_loop() - self.config = CozeConfig.create(ten_env=ten_env) + self.config = await CozeConfig.create_async(ten_env=ten_env) ten_env.log_info(f"config: {self.config}") if not self.config.bot_id or not self.config.token: diff --git a/agents/ten_packages/extension/coze_python_async/manifest.json b/agents/ten_packages/extension/coze_python_async/manifest.json index 3a27b36f5..18379f4f3 100644 --- a/agents/ten_packages/extension/coze_python_async/manifest.json +++ b/agents/ten_packages/extension/coze_python_async/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/extension/deepgram_asr_python/extension.py b/agents/ten_packages/extension/deepgram_asr_python/extension.py index 712eb8053..48e516d56 100644 --- a/agents/ten_packages/extension/deepgram_asr_python/extension.py +++ b/agents/ten_packages/extension/deepgram_asr_python/extension.py @@ -59,7 +59,7 @@ async def on_start(self, ten_env: AsyncTenEnv) -> None: self.loop = asyncio.get_event_loop() self.ten_env = ten_env - self.config = DeepgramASRConfig.create(ten_env=ten_env) + self.config = await DeepgramASRConfig.create_async(ten_env=ten_env) ten_env.log_info(f"config: {self.config}") if not self.config.api_key: @@ -156,6 +156,8 @@ async def on_error(_, error): interim_results=self.config.interim_results, punctuate=self.config.punctuate, ) + + self.ten_env.log_info(f"deepgram options: {options}") # connect to websocket result = await self.client.start(options) if not result: diff --git a/agents/ten_packages/extension/deepgram_asr_python/manifest.json b/agents/ten_packages/extension/deepgram_asr_python/manifest.json index efdcdd5bc..a6b96d859 100644 --- a/agents/ten_packages/extension/deepgram_asr_python/manifest.json +++ b/agents/ten_packages/extension/deepgram_asr_python/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "api": { diff --git a/agents/ten_packages/extension/dify_python/extension.py b/agents/ten_packages/extension/dify_python/extension.py index f9ae52b73..2d53735cc 100644 --- a/agents/ten_packages/extension/dify_python/extension.py +++ b/agents/ten_packages/extension/dify_python/extension.py @@ -81,7 +81,7 @@ async def on_start(self, ten_env: AsyncTenEnv) -> None: ten_env.log_debug("on_start") self.loop = asyncio.get_event_loop() - self.config = DifyConfig.create(ten_env=ten_env) + self.config = await DifyConfig.create_async(ten_env=ten_env) ten_env.log_info(f"config: {self.config}") if not self.config.api_key: diff --git a/agents/ten_packages/extension/dify_python/manifest.json b/agents/ten_packages/extension/dify_python/manifest.json index 2fcb733b3..331ceaf4f 100644 --- a/agents/ten_packages/extension/dify_python/manifest.json +++ b/agents/ten_packages/extension/dify_python/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/extension/elevenlabs_tts/manifest.json b/agents/ten_packages/extension/elevenlabs_tts/manifest.json index cf1d67514..0e0a25d9e 100644 --- a/agents/ten_packages/extension/elevenlabs_tts/manifest.json +++ b/agents/ten_packages/extension/elevenlabs_tts/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_go", - "version": "0.5" + "version": "0.6" } ], "api": { diff --git a/agents/ten_packages/extension/elevenlabs_tts_python/extension.py b/agents/ten_packages/extension/elevenlabs_tts_python/extension.py index efdbdeb09..9afcb3866 100644 --- a/agents/ten_packages/extension/elevenlabs_tts_python/extension.py +++ b/agents/ten_packages/extension/elevenlabs_tts_python/extension.py @@ -25,7 +25,7 @@ async def on_start(self, ten_env: AsyncTenEnv) -> None: try: await super().on_start(ten_env) ten_env.log_debug("on_start") - self.config = ElevenLabsTTSConfig.create(ten_env=ten_env) + self.config = await ElevenLabsTTSConfig.create_async(ten_env=ten_env) if not self.config.api_key: raise ValueError("api_key is required") diff --git a/agents/ten_packages/extension/elevenlabs_tts_python/manifest.json b/agents/ten_packages/extension/elevenlabs_tts_python/manifest.json index 2b753442b..b551367cd 100644 --- a/agents/ten_packages/extension/elevenlabs_tts_python/manifest.json +++ b/agents/ten_packages/extension/elevenlabs_tts_python/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/extension/fashionai/manifest.json b/agents/ten_packages/extension/fashionai/manifest.json index 685b15788..33f6ff951 100644 --- a/agents/ten_packages/extension/fashionai/manifest.json +++ b/agents/ten_packages/extension/fashionai/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/extension/fashionai/src/extension.py b/agents/ten_packages/extension/fashionai/src/extension.py index 6801ac120..90b05804d 100644 --- a/agents/ten_packages/extension/fashionai/src/extension.py +++ b/agents/ten_packages/extension/fashionai/src/extension.py @@ -50,11 +50,11 @@ async def on_start(self, ten_env: AsyncTenEnv) -> None: ) try: - self.app_id = ten_env.get_property_string("app_id") - self.token = ten_env.get_property_string("token") - self.channel = ten_env.get_property_string("channel") - self.stream_id = str(ten_env.get_property_int("stream_id")) - self.service_id = ten_env.get_property_string("service_id") + self.app_id = await ten_env.get_property_string("app_id") + self.token = await ten_env.get_property_string("token") + self.channel = await ten_env.get_property_string("channel") + self.stream_id = str(await ten_env.get_property_int("stream_id")) + self.service_id = await ten_env.get_property_string("service_id") ten_env.log_info( f"FASHION_AI on_start: app_id = {self.app_id}, token = {self.token}, channel = {self.channel}, stream_id = {self.stream_id}, service_id = {self.service_id}" diff --git a/agents/ten_packages/extension/file_chunker/manifest.json b/agents/ten_packages/extension/file_chunker/manifest.json index e91d1fc5e..003700560 100644 --- a/agents/ten_packages/extension/file_chunker/manifest.json +++ b/agents/ten_packages/extension/file_chunker/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "api": { diff --git a/agents/ten_packages/extension/fish_audio_tts/manifest.json b/agents/ten_packages/extension/fish_audio_tts/manifest.json index df1fecfab..e0b769275 100644 --- a/agents/ten_packages/extension/fish_audio_tts/manifest.json +++ b/agents/ten_packages/extension/fish_audio_tts/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_go", - "version": "0.5" + "version": "0.6" } ], "api": { diff --git a/agents/ten_packages/extension/gemini_llm_python/manifest.json b/agents/ten_packages/extension/gemini_llm_python/manifest.json index 1b4b0fc89..67fa9bdf0 100644 --- a/agents/ten_packages/extension/gemini_llm_python/manifest.json +++ b/agents/ten_packages/extension/gemini_llm_python/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "api": { diff --git a/agents/ten_packages/extension/gemini_v2v_python/extension.py b/agents/ten_packages/extension/gemini_v2v_python/extension.py index c0eaa3656..77463fde1 100644 --- a/agents/ten_packages/extension/gemini_v2v_python/extension.py +++ b/agents/ten_packages/extension/gemini_v2v_python/extension.py @@ -207,7 +207,7 @@ async def on_start(self, ten_env: AsyncTenEnv) -> None: self.loop = asyncio.get_event_loop() - self.config = GeminiRealtimeConfig.create(ten_env=ten_env) + self.config = await GeminiRealtimeConfig.create_async(ten_env=ten_env) ten_env.log_info(f"config: {self.config}") if not self.config.api_key: diff --git a/agents/ten_packages/extension/gemini_v2v_python/manifest.json b/agents/ten_packages/extension/gemini_v2v_python/manifest.json index e8d4f6a0a..27cfdacb5 100644 --- a/agents/ten_packages/extension/gemini_v2v_python/manifest.json +++ b/agents/ten_packages/extension/gemini_v2v_python/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/extension/glue_python_async/extension.py b/agents/ten_packages/extension/glue_python_async/extension.py index 6b5fb18c3..cae63e440 100644 --- a/agents/ten_packages/extension/glue_python_async/extension.py +++ b/agents/ten_packages/extension/glue_python_async/extension.py @@ -160,7 +160,7 @@ async def on_start(self, ten_env: AsyncTenEnv) -> None: self.loop = asyncio.get_event_loop() - self.config = GlueConfig.create(ten_env=ten_env) + self.config = await GlueConfig.create_async(ten_env=ten_env) ten_env.log_info(f"config: {self.config}") self.memory = ChatMemory(self.config.max_history) diff --git a/agents/ten_packages/extension/glue_python_async/manifest.json b/agents/ten_packages/extension/glue_python_async/manifest.json index fcabb14a8..d3331ecb0 100644 --- a/agents/ten_packages/extension/glue_python_async/manifest.json +++ b/agents/ten_packages/extension/glue_python_async/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/extension/http_server_python/manifest.json b/agents/ten_packages/extension/http_server_python/manifest.json index 054d242dc..d02413469 100644 --- a/agents/ten_packages/extension/http_server_python/manifest.json +++ b/agents/ten_packages/extension/http_server_python/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/extension/interrupt_detector/manifest.json b/agents/ten_packages/extension/interrupt_detector/manifest.json index 9cdd4494a..5c87b632c 100644 --- a/agents/ten_packages/extension/interrupt_detector/manifest.json +++ b/agents/ten_packages/extension/interrupt_detector/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_go", - "version": "0.5" + "version": "0.6" } ], "api": { diff --git a/agents/ten_packages/extension/interrupt_detector_python/manifest.json b/agents/ten_packages/extension/interrupt_detector_python/manifest.json index a2b416ca3..2579f8e4c 100644 --- a/agents/ten_packages/extension/interrupt_detector_python/manifest.json +++ b/agents/ten_packages/extension/interrupt_detector_python/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "api": { diff --git a/agents/ten_packages/extension/llama_index_chat_engine/manifest.json b/agents/ten_packages/extension/llama_index_chat_engine/manifest.json index 18e0a8b5a..5fe25a42d 100644 --- a/agents/ten_packages/extension/llama_index_chat_engine/manifest.json +++ b/agents/ten_packages/extension/llama_index_chat_engine/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "api": { diff --git a/agents/ten_packages/extension/message_collector/manifest.json b/agents/ten_packages/extension/message_collector/manifest.json index 156615ef6..835c17217 100644 --- a/agents/ten_packages/extension/message_collector/manifest.json +++ b/agents/ten_packages/extension/message_collector/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/extension/message_collector_rtm/manifest.json b/agents/ten_packages/extension/message_collector_rtm/manifest.json index ec3286158..b130f21f6 100644 --- a/agents/ten_packages/extension/message_collector_rtm/manifest.json +++ b/agents/ten_packages/extension/message_collector_rtm/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/extension/minimax_tts/manifest.json b/agents/ten_packages/extension/minimax_tts/manifest.json index 2a3811d86..0d5832834 100644 --- a/agents/ten_packages/extension/minimax_tts/manifest.json +++ b/agents/ten_packages/extension/minimax_tts/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_go", - "version": "0.5" + "version": "0.6" } ], "api": { diff --git a/agents/ten_packages/extension/minimax_tts_python/extension.py b/agents/ten_packages/extension/minimax_tts_python/extension.py index b008a6883..41ee8a4f5 100644 --- a/agents/ten_packages/extension/minimax_tts_python/extension.py +++ b/agents/ten_packages/extension/minimax_tts_python/extension.py @@ -24,7 +24,7 @@ async def on_start(self, ten_env: AsyncTenEnv) -> None: await super().on_start(ten_env) ten_env.log_debug("on_start") - config = MinimaxTTSConfig.create(ten_env=ten_env) + config = await MinimaxTTSConfig.create_async(ten_env=ten_env) ten_env.log_info(f"config: {config.api_key}, {config.group_id}") diff --git a/agents/ten_packages/extension/minimax_tts_python/manifest.json b/agents/ten_packages/extension/minimax_tts_python/manifest.json index 885d5c1e3..bf9c2f02f 100644 --- a/agents/ten_packages/extension/minimax_tts_python/manifest.json +++ b/agents/ten_packages/extension/minimax_tts_python/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/extension/minimax_v2v_python/extension.py b/agents/ten_packages/extension/minimax_v2v_python/extension.py index 6a253d939..6612b0af4 100644 --- a/agents/ten_packages/extension/minimax_v2v_python/extension.py +++ b/agents/ten_packages/extension/minimax_v2v_python/extension.py @@ -43,7 +43,7 @@ class MinimaxV2VConfig: max_memory_length: int = 10 dump: bool = False - def read_from_property(self, ten_env: AsyncTenEnv): + async def read_from_property(self, ten_env: AsyncTenEnv): for field in fields(self): # 'is_property_exist' has a bug that can not be used in async extension currently, use it instead of try .. except once fixed # if not ten_env.is_property_exist(field.name): @@ -51,16 +51,16 @@ def read_from_property(self, ten_env: AsyncTenEnv): try: match field.type: case builtins.str: - val = ten_env.get_property_string(field.name) + val = await ten_env.get_property_string(field.name) if val: setattr(self, field.name, val) ten_env.log_info(f"{field.name}={val}") case builtins.int: - val = ten_env.get_property_int(field.name) + val = await ten_env.get_property_int(field.name) setattr(self, field.name, val) ten_env.log_info(f"{field.name}={val}") case builtins.bool: - val = ten_env.get_property_bool(field.name) + val = await ten_env.get_property_bool(field.name) setattr(self, field.name, val) ten_env.log_info(f"{field.name}={val}") case _: @@ -87,7 +87,7 @@ def __init__(self, name: str) -> None: self.queue = asyncio.Queue() async def on_init(self, ten_env: AsyncTenEnv) -> None: - self.config.read_from_property(ten_env=ten_env) + await self.config.read_from_property(ten_env=ten_env) ten_env.log_info(f"config: {self.config}") self.memory = ChatMemory(self.config.max_memory_length) diff --git a/agents/ten_packages/extension/minimax_v2v_python/manifest.json b/agents/ten_packages/extension/minimax_v2v_python/manifest.json index 7f6d939d1..d31df6c77 100644 --- a/agents/ten_packages/extension/minimax_v2v_python/manifest.json +++ b/agents/ten_packages/extension/minimax_v2v_python/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/extension/openai_chatgpt/manifest.json b/agents/ten_packages/extension/openai_chatgpt/manifest.json index 23cb630b5..4e678221f 100644 --- a/agents/ten_packages/extension/openai_chatgpt/manifest.json +++ b/agents/ten_packages/extension/openai_chatgpt/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_go", - "version": "0.5" + "version": "0.6" } ], "api": { diff --git a/agents/ten_packages/extension/openai_chatgpt_python/extension.py b/agents/ten_packages/extension/openai_chatgpt_python/extension.py index 7449e2ce5..4fb6fd961 100644 --- a/agents/ten_packages/extension/openai_chatgpt_python/extension.py +++ b/agents/ten_packages/extension/openai_chatgpt_python/extension.py @@ -66,7 +66,7 @@ async def on_start(self, async_ten_env: AsyncTenEnv) -> None: async_ten_env.log_info("on_start") await super().on_start(async_ten_env) - self.config = OpenAIChatGPTConfig.create(ten_env=async_ten_env) + self.config = await OpenAIChatGPTConfig.create_async(ten_env=async_ten_env) # Mandatory properties if not self.config.api_key: diff --git a/agents/ten_packages/extension/openai_chatgpt_python/manifest.json b/agents/ten_packages/extension/openai_chatgpt_python/manifest.json index f11436431..f71d0d76f 100644 --- a/agents/ten_packages/extension/openai_chatgpt_python/manifest.json +++ b/agents/ten_packages/extension/openai_chatgpt_python/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/extension/openai_v2v_python/extension.py b/agents/ten_packages/extension/openai_v2v_python/extension.py index fc0fefa21..680769faa 100644 --- a/agents/ten_packages/extension/openai_v2v_python/extension.py +++ b/agents/ten_packages/extension/openai_v2v_python/extension.py @@ -159,7 +159,7 @@ async def on_start(self, ten_env: AsyncTenEnv) -> None: self.loop = asyncio.get_event_loop() - self.config = OpenAIRealtimeConfig.create(ten_env=ten_env) + self.config = await OpenAIRealtimeConfig.create_async(ten_env=ten_env) ten_env.log_info(f"config: {self.config}") if not self.config.api_key: diff --git a/agents/ten_packages/extension/openai_v2v_python/manifest.json b/agents/ten_packages/extension/openai_v2v_python/manifest.json index dfa9640fa..a2a957fa7 100644 --- a/agents/ten_packages/extension/openai_v2v_python/manifest.json +++ b/agents/ten_packages/extension/openai_v2v_python/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/extension/polly_tts/extension.py b/agents/ten_packages/extension/polly_tts/extension.py index e8cd664db..ad8a659c5 100644 --- a/agents/ten_packages/extension/polly_tts/extension.py +++ b/agents/ten_packages/extension/polly_tts/extension.py @@ -28,7 +28,7 @@ async def on_start(self, ten_env: AsyncTenEnv) -> None: try: await super().on_start(ten_env) ten_env.log_debug("on_start") - self.config = PollyTTSConfig.create(ten_env=ten_env) + self.config = await PollyTTSConfig.create_async(ten_env=ten_env) if not self.config.access_key or not self.config.secret_key: raise ValueError("access_key and secret_key are required") diff --git a/agents/ten_packages/extension/polly_tts/manifest.json b/agents/ten_packages/extension/polly_tts/manifest.json index 1608b23e2..74181c215 100644 --- a/agents/ten_packages/extension/polly_tts/manifest.json +++ b/agents/ten_packages/extension/polly_tts/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/extension/qwen_llm_python/manifest.json b/agents/ten_packages/extension/qwen_llm_python/manifest.json index da33245d8..732da271e 100644 --- a/agents/ten_packages/extension/qwen_llm_python/manifest.json +++ b/agents/ten_packages/extension/qwen_llm_python/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "api": { diff --git a/agents/ten_packages/extension/transcribe_asr_python/manifest.json b/agents/ten_packages/extension/transcribe_asr_python/manifest.json index bacf00aee..810b2bb23 100644 --- a/agents/ten_packages/extension/transcribe_asr_python/manifest.json +++ b/agents/ten_packages/extension/transcribe_asr_python/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "api": { diff --git a/agents/ten_packages/extension/tsdb_firestore/manifest.json b/agents/ten_packages/extension/tsdb_firestore/manifest.json index dc15f71cc..5b74ee417 100644 --- a/agents/ten_packages/extension/tsdb_firestore/manifest.json +++ b/agents/ten_packages/extension/tsdb_firestore/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/extension/vision_analyze_tool_python/manifest.json b/agents/ten_packages/extension/vision_analyze_tool_python/manifest.json index 70f933252..e087377a4 100644 --- a/agents/ten_packages/extension/vision_analyze_tool_python/manifest.json +++ b/agents/ten_packages/extension/vision_analyze_tool_python/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/extension/vision_tool_python/manifest.json b/agents/ten_packages/extension/vision_tool_python/manifest.json index fe2d09a12..ae483903b 100644 --- a/agents/ten_packages/extension/vision_tool_python/manifest.json +++ b/agents/ten_packages/extension/vision_tool_python/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/extension/weatherapi_tool_python/extension.py b/agents/ten_packages/extension/weatherapi_tool_python/extension.py index 17365b61d..d4cf55802 100644 --- a/agents/ten_packages/extension/weatherapi_tool_python/extension.py +++ b/agents/ten_packages/extension/weatherapi_tool_python/extension.py @@ -96,7 +96,7 @@ async def on_init(self, ten_env: AsyncTenEnv) -> None: async def on_start(self, ten_env: AsyncTenEnv) -> None: ten_env.log_debug("on_start") - self.config = WeatherToolConfig.create(ten_env=ten_env) + self.config = await WeatherToolConfig.create_async(ten_env=ten_env) ten_env.log_info(f"config: {self.config}") if self.config.api_key: await super().on_start(ten_env) diff --git a/agents/ten_packages/extension/weatherapi_tool_python/manifest.json b/agents/ten_packages/extension/weatherapi_tool_python/manifest.json index 09f620e11..c71243704 100644 --- a/agents/ten_packages/extension/weatherapi_tool_python/manifest.json +++ b/agents/ten_packages/extension/weatherapi_tool_python/manifest.json @@ -6,7 +6,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "package": { diff --git a/agents/ten_packages/system/ten_ai_base/interface/ten_ai_base/config.py b/agents/ten_packages/system/ten_ai_base/interface/ten_ai_base/config.py index 673a84311..99f2d09d6 100644 --- a/agents/ten_packages/system/ten_ai_base/interface/ten_ai_base/config.py +++ b/agents/ten_packages/system/ten_ai_base/interface/ten_ai_base/config.py @@ -2,7 +2,7 @@ import json from typing import TypeVar, Type, List -from ten import TenEnv +from ten import AsyncTenEnv, TenEnv from dataclasses import dataclass, fields @@ -22,6 +22,12 @@ def create(cls: Type[T], ten_env: TenEnv) -> T: c._init(ten_env) return c + @classmethod + async def create_async(cls: Type[T], ten_env: AsyncTenEnv) -> T: + c = cls() + await c._init_async(ten_env) + return c + def _init(obj, ten_env: TenEnv): """ Get property from ten_env to initialize the dataclass config. @@ -50,3 +56,29 @@ def _init(obj, ten_env: TenEnv): setattr(obj, field.name, json.loads(val)) except Exception as e: pass + + async def _init_async(obj, ten_env: AsyncTenEnv): + """ + Get property from ten_env to initialize the dataclass config. + """ + for field in fields(obj): + try: + match field.type: + case builtins.str: + val = await ten_env.get_property_string(field.name) + if val: + setattr(obj, field.name, val) + case builtins.int: + val = await ten_env.get_property_int(field.name) + setattr(obj, field.name, val) + case builtins.bool: + val = await ten_env.get_property_bool(field.name) + setattr(obj, field.name, val) + case builtins.float: + val = await ten_env.get_property_float(field.name) + setattr(obj, field.name, val) + case _: + val = await ten_env.get_property_to_json(field.name) + setattr(obj, field.name, json.loads(val)) + except Exception as e: + pass \ No newline at end of file diff --git a/agents/ten_packages/system/ten_ai_base/manifest.json b/agents/ten_packages/system/ten_ai_base/manifest.json index e3a4fa309..9da9cd715 100644 --- a/agents/ten_packages/system/ten_ai_base/manifest.json +++ b/agents/ten_packages/system/ten_ai_base/manifest.json @@ -13,7 +13,7 @@ { "type": "system", "name": "ten_runtime_python", - "version": "0.5" + "version": "0.6" } ], "api": {} diff --git a/playground/src/middleware.tsx b/playground/src/middleware.tsx index 48d74439c..750cab355 100644 --- a/playground/src/middleware.tsx +++ b/playground/src/middleware.tsx @@ -55,7 +55,7 @@ export async function middleware(req: NextRequest) { return NextResponse.rewrite(url); } - url.href = `${TEN_DEV_SERVER_URL}${pathname.replace('/api/dev/', '/api/dev-server/')}`; + url.href = `${TEN_DEV_SERVER_URL}${pathname.replace('/api/dev/', '/api/designer/')}`; // console.log(`Rewriting request to ${url.href}`); return NextResponse.rewrite(url);