77import os
88import threading
99from datetime import datetime
10- from typing import Dict , Any , List , Optional , Callable
10+ from typing import Dict , Any , List , Optional , Callable , Union
1111
1212import httpx
1313
1414from cozeloop .client import Client
1515from cozeloop ._noop import NOOP_SPAN , _NoopClient
16- from cozeloop .entities .prompt import Prompt , Message , PromptVariable
16+ from cozeloop .entities .prompt import Prompt , Message , PromptVariable , ExecuteResult
17+ from cozeloop .entities .stream import StreamReader
1718from cozeloop .internal import consts , httpclient
1819from cozeloop .internal .consts import ClientClosedError
1920from cozeloop .internal .httpclient import Auth
@@ -269,6 +270,62 @@ def prompt_format(self, prompt: Prompt, variables: Dict[str, PromptVariable]) ->
269270 raise ClientClosedError ()
270271 return self ._prompt_provider .prompt_format (prompt , variables )
271272
273+ def execute_prompt (
274+ self ,
275+ prompt_key : str ,
276+ * ,
277+ version : Optional [str ] = None ,
278+ label : Optional [str ] = None ,
279+ variable_vals : Optional [Dict [str , Any ]] = None ,
280+ messages : Optional [List [Message ]] = None ,
281+ stream : bool = False ,
282+ timeout : Optional [int ] = None
283+ ) -> Union [ExecuteResult , StreamReader [ExecuteResult ]]:
284+ """
285+ 执行Prompt请求
286+
287+ :param timeout: 请求超时时间(秒),可选,默认为600秒(10分钟)
288+ """
289+ if self ._closed :
290+ raise ClientClosedError ()
291+ return self ._prompt_provider .execute_prompt (
292+ prompt_key ,
293+ version = version ,
294+ label = label ,
295+ variable_vals = variable_vals ,
296+ messages = messages ,
297+ stream = stream ,
298+ timeout = timeout
299+ )
300+
301+ async def aexecute_prompt (
302+ self ,
303+ prompt_key : str ,
304+ * ,
305+ version : Optional [str ] = None ,
306+ label : Optional [str ] = None ,
307+ variable_vals : Optional [Dict [str , Any ]] = None ,
308+ messages : Optional [List [Message ]] = None ,
309+ stream : bool = False ,
310+ timeout : Optional [int ] = None
311+ ) -> Union [ExecuteResult , StreamReader [ExecuteResult ]]:
312+ """
313+ 异步执行Prompt请求
314+
315+ :param timeout: 请求超时时间(秒),可选,默认为600秒(10分钟)
316+ """
317+ if self ._closed :
318+ raise ClientClosedError ()
319+ return await self ._prompt_provider .aexecute_prompt (
320+ prompt_key ,
321+ version = version ,
322+ label = label ,
323+ variable_vals = variable_vals ,
324+ messages = messages ,
325+ stream = stream ,
326+ timeout = timeout
327+ )
328+
272329 def start_span (
273330 self ,
274331 name : str ,
@@ -368,6 +425,58 @@ def prompt_format(prompt: Prompt, variables: Dict[str, Any]) -> List[Message]:
368425 return get_default_client ().prompt_format (prompt , variables )
369426
370427
428+ def execute_prompt (
429+ prompt_key : str ,
430+ * ,
431+ version : Optional [str ] = None ,
432+ label : Optional [str ] = None ,
433+ variable_vals : Optional [Dict [str , Any ]] = None ,
434+ messages : Optional [List [Message ]] = None ,
435+ stream : bool = False ,
436+ timeout : Optional [int ] = None
437+ ) -> Union [ExecuteResult , StreamReader [ExecuteResult ]]:
438+ """
439+ 执行Prompt请求
440+
441+ :param timeout: 请求超时时间(秒),可选,默认为600秒(10分钟)
442+ """
443+ return get_default_client ().execute_prompt (
444+ prompt_key ,
445+ version = version ,
446+ label = label ,
447+ variable_vals = variable_vals ,
448+ messages = messages ,
449+ stream = stream ,
450+ timeout = timeout
451+ )
452+
453+
454+ async def aexecute_prompt (
455+ prompt_key : str ,
456+ * ,
457+ version : Optional [str ] = None ,
458+ label : Optional [str ] = None ,
459+ variable_vals : Optional [Dict [str , Any ]] = None ,
460+ messages : Optional [List [Message ]] = None ,
461+ stream : bool = False ,
462+ timeout : Optional [int ] = None
463+ ) -> Union [ExecuteResult , StreamReader [ExecuteResult ]]:
464+ """
465+ 异步执行Prompt请求
466+
467+ :param timeout: 请求超时时间(秒),可选,默认为600秒(10分钟)
468+ """
469+ return await get_default_client ().aexecute_prompt (
470+ prompt_key ,
471+ version = version ,
472+ label = label ,
473+ variable_vals = variable_vals ,
474+ messages = messages ,
475+ stream = stream ,
476+ timeout = timeout
477+ )
478+
479+
371480def start_span (name : str , span_type : str , * , start_time : Optional [int ] = None ,
372481 child_of : Optional [SpanContext ] = None ) -> Span :
373482 return get_default_client ().start_span (name , span_type , start_time = start_time , child_of = child_of )
@@ -382,4 +491,4 @@ def get_span_from_header(header: Dict[str, str]) -> SpanContext:
382491
383492
384493def flush () -> None :
385- return get_default_client ().flush ()
494+ return get_default_client ().flush ()
0 commit comments