2020
2121import prompt
2222import utils
23- from config import LLM_ENDPOINT , VLM_ENDPOINT , TTS_ACCESS_TOKEN , TTS_APP_ID
23+ from config import VISUAL_SUMMARY_ENDPOINT , QUESTION_ANSWER_ENDPOINT , TTS_ACCESS_TOKEN , TTS_APP_ID
24+
25+ from volcenginesdkarkruntime .types .chat .completion_create_params import Thinking
26+
27+ from volcenginesdkarkruntime .types .chat .chat_completion_content_part_text_param import ChatCompletionContentPartTextParam
2428
2529from arkitect .core .component .llm import BaseChatLanguageModel
26- from arkitect .core . component .llm .model import (
30+ from arkitect .types .llm .model import (
2731 ArkChatCompletionChunk ,
2832 ArkChatParameters ,
2933 ArkChatRequest ,
3034 ArkChatResponse ,
3135 ArkMessage ,
32- ChatCompletionMessageTextPart ,
3336 Response ,
3437)
3538from arkitect .core .component .tts import (
@@ -58,7 +61,7 @@ async def get_request_messages_for_llm(
5861 request_messages = await contexts .get_history (context_id )
5962 if isinstance (request .messages [- 1 ].content , list ):
6063 assert isinstance (
61- request .messages [- 1 ].content [0 ], ChatCompletionMessageTextPart
64+ request .messages [- 1 ].content [0 ], ChatCompletionContentPartTextParam
6265 )
6366 text = request .messages [- 1 ].content [0 ].text
6467 else :
@@ -74,7 +77,7 @@ async def chat_with_vlm(
7477 parameters : ArkChatParameters ,
7578) -> Tuple [bool , Optional [AsyncIterable [ArkChatCompletionChunk ]]]:
7679 vlm = BaseChatLanguageModel (
77- endpoint_id = VLM_ENDPOINT ,
80+ endpoint_id = VISUAL_SUMMARY_ENDPOINT ,
7881 messages = [ArkMessage (role = "system" , content = prompt .VLM_CHAT_PROMPT )]
7982 + [request .messages [- 1 ]],
8083 parameters = parameters ,
@@ -108,7 +111,7 @@ async def llm_answer(
108111 contexts , context_id , request , prompt .LLM_PROMPT
109112 )
110113 llm = BaseChatLanguageModel (
111- endpoint_id = LLM_ENDPOINT ,
114+ endpoint_id = QUESTION_ANSWER_ENDPOINT ,
112115 messages = request_messages ,
113116 parameters = parameters ,
114117 )
@@ -180,7 +183,7 @@ async def summarize_image(
180183 ArkMessage (role = "system" , content = prompt .VLM_PROMPT )
181184 ] + request .messages
182185 vlm = BaseChatLanguageModel (
183- endpoint_id = VLM_ENDPOINT ,
186+ endpoint_id = VISUAL_SUMMARY_ENDPOINT ,
184187 messages = request_messages ,
185188 parameters = parameters ,
186189 )
@@ -195,7 +198,7 @@ async def default_model_calling(
195198 request : ArkChatRequest ,
196199) -> AsyncIterable [Union [ArkChatCompletionChunk , ArkChatResponse ]]:
197200 # local in-memory storage should be changed to other storage in production
198- context_id : Optional [str ] = get_headers (). get ( "X-Context-Id" , None )
201+ context_id : Optional [str ] = request . metadata [ "context_id" ]
199202 assert context_id is not None
200203 contexts : utils .Storage = utils .CoroutineSafeMap .get_instance_sync ()
201204 if not await contexts .contains (context_id ):
@@ -205,10 +208,11 @@ async def default_model_calling(
205208 # Use VLM to summarize the image asynchronously and return immediately
206209 is_image = (
207210 isinstance (request .messages [- 1 ].content , list )
208- and isinstance (request .messages [- 1 ].content [0 ], ChatCompletionMessageTextPart )
211+ and isinstance (request .messages [- 1 ].content [0 ], ChatCompletionContentPartTextParam )
209212 and request .messages [- 1 ].content [0 ].text == ""
210213 )
211214 parameters = ArkChatParameters (** request .__dict__ )
215+ parameters .thinking = Thinking (type = "disabled" )
212216 if is_image :
213217 _ = asyncio .create_task (
214218 summarize_image (contexts , request , parameters , context_id )
@@ -248,7 +252,7 @@ async def default_model_calling(
248252 await tts_client .close ()
249253 text = ""
250254 if isinstance (request .messages [- 1 ].content , list ) and isinstance (
251- request .messages [- 1 ].content [0 ], ChatCompletionMessageTextPart
255+ request .messages [- 1 ].content [0 ], ChatCompletionContentPartTextParam
252256 ):
253257 text = request .messages [- 1 ].content [0 ].text
254258 elif isinstance (request .messages [- 1 ].content , str ):
0 commit comments