vectorvein 0.2.7__py3-none-any.whl → 0.2.8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,30 @@
1
1
  # @Author: Bi Ying
2
2
  # @Date: 2024-07-26 14:48:55
3
3
  import json
4
- from typing import overload, Generator, AsyncGenerator, Any, Literal, Iterable
4
+ from typing import (
5
+ Any,
6
+ Dict,
7
+ List,
8
+ Union,
9
+ Literal,
10
+ Iterable,
11
+ overload,
12
+ Optional,
13
+ Generator,
14
+ AsyncGenerator,
15
+ )
5
16
 
6
17
  import httpx
7
18
  from openai._types import NotGiven as OpenAINotGiven
8
19
  from openai._types import NOT_GIVEN as OPENAI_NOT_GIVEN
20
+ from openai._types import Headers, Query, Body
21
+ from openai.types.shared_params.metadata import Metadata
22
+ from openai.types.chat.completion_create_params import ResponseFormat
23
+ from openai.types.chat.chat_completion_modality import ChatCompletionModality
24
+ from openai.types.chat.chat_completion_audio_param import ChatCompletionAudioParam
25
+ from openai.types.chat.chat_completion_reasoning_effort import ChatCompletionReasoningEffort
26
+ from openai.types.chat.chat_completion_stream_options_param import ChatCompletionStreamOptionsParam
27
+ from openai.types.chat.chat_completion_prediction_content_param import ChatCompletionPredictionContentParam
9
28
  from anthropic import (
10
29
  Anthropic,
11
30
  AnthropicVertex,
@@ -21,6 +40,7 @@ from anthropic.types import (
21
40
  RedactedThinkingBlock,
22
41
  MessageParam,
23
42
  ToolUseBlock,
43
+ ThinkingConfigParam,
24
44
  RawMessageDeltaEvent,
25
45
  RawMessageStartEvent,
26
46
  RawContentBlockStartEvent,
@@ -45,7 +65,6 @@ from ..types.llm_parameters import (
45
65
  ChatCompletionMessage,
46
66
  ChatCompletionToolParam,
47
67
  ChatCompletionDeltaMessage,
48
- ChatCompletionStreamOptionsParam,
49
68
  )
50
69
 
51
70
 
@@ -261,11 +280,33 @@ class AnthropicChatClient(BaseChatClient):
261
280
  max_tokens: int | None = None,
262
281
  tools: Iterable[ToolParam] | NotGiven = NOT_GIVEN,
263
282
  tool_choice: ToolChoice | NotGiven = NOT_GIVEN,
264
- response_format: dict | None = None,
283
+ response_format: ResponseFormat | NotGiven = NOT_GIVEN,
265
284
  stream_options: ChatCompletionStreamOptionsParam | None = None,
266
285
  top_p: float | NotGiven | None = NOT_GIVEN,
267
286
  skip_cutoff: bool = False,
268
- **kwargs,
287
+ audio: Optional[ChatCompletionAudioParam] | OpenAINotGiven = OPENAI_NOT_GIVEN,
288
+ frequency_penalty: Optional[float] | OpenAINotGiven = OPENAI_NOT_GIVEN,
289
+ logit_bias: Optional[Dict[str, int]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
290
+ logprobs: Optional[bool] | OpenAINotGiven = OPENAI_NOT_GIVEN,
291
+ max_completion_tokens: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
292
+ metadata: Optional[Metadata] | OpenAINotGiven = OPENAI_NOT_GIVEN,
293
+ modalities: Optional[List[ChatCompletionModality]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
294
+ n: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
295
+ parallel_tool_calls: bool | OpenAINotGiven = OPENAI_NOT_GIVEN,
296
+ prediction: Optional[ChatCompletionPredictionContentParam] | OpenAINotGiven = OPENAI_NOT_GIVEN,
297
+ presence_penalty: Optional[float] | OpenAINotGiven = OPENAI_NOT_GIVEN,
298
+ reasoning_effort: Optional[ChatCompletionReasoningEffort] | OpenAINotGiven = OPENAI_NOT_GIVEN,
299
+ thinking: ThinkingConfigParam | None | NotGiven = NOT_GIVEN,
300
+ seed: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
301
+ service_tier: Optional[Literal["auto", "default"]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
302
+ stop: Union[Optional[str], List[str]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
303
+ store: Optional[bool] | OpenAINotGiven = OPENAI_NOT_GIVEN,
304
+ top_logprobs: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
305
+ user: str | OpenAINotGiven = OPENAI_NOT_GIVEN,
306
+ extra_headers: Headers | None = None,
307
+ extra_query: Query | None = None,
308
+ extra_body: Body | None = None,
309
+ timeout: float | httpx.Timeout | None | OpenAINotGiven = OPENAI_NOT_GIVEN,
269
310
  ) -> ChatCompletionMessage:
270
311
  pass
271
312
 
@@ -280,11 +321,33 @@ class AnthropicChatClient(BaseChatClient):
280
321
  max_tokens: int | None = None,
281
322
  tools: Iterable[ToolParam] | NotGiven = NOT_GIVEN,
282
323
  tool_choice: ToolChoice | NotGiven = NOT_GIVEN,
283
- response_format: dict | None = None,
324
+ response_format: ResponseFormat | NotGiven = NOT_GIVEN,
284
325
  stream_options: ChatCompletionStreamOptionsParam | None = None,
285
326
  top_p: float | NotGiven | None = NOT_GIVEN,
286
327
  skip_cutoff: bool = False,
287
- **kwargs,
328
+ audio: Optional[ChatCompletionAudioParam] | OpenAINotGiven = OPENAI_NOT_GIVEN,
329
+ frequency_penalty: Optional[float] | OpenAINotGiven = OPENAI_NOT_GIVEN,
330
+ logit_bias: Optional[Dict[str, int]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
331
+ logprobs: Optional[bool] | OpenAINotGiven = OPENAI_NOT_GIVEN,
332
+ max_completion_tokens: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
333
+ metadata: Optional[Metadata] | OpenAINotGiven = OPENAI_NOT_GIVEN,
334
+ modalities: Optional[List[ChatCompletionModality]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
335
+ n: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
336
+ parallel_tool_calls: bool | OpenAINotGiven = OPENAI_NOT_GIVEN,
337
+ prediction: Optional[ChatCompletionPredictionContentParam] | OpenAINotGiven = OPENAI_NOT_GIVEN,
338
+ presence_penalty: Optional[float] | OpenAINotGiven = OPENAI_NOT_GIVEN,
339
+ reasoning_effort: Optional[ChatCompletionReasoningEffort] | OpenAINotGiven = OPENAI_NOT_GIVEN,
340
+ thinking: ThinkingConfigParam | None | NotGiven = NOT_GIVEN,
341
+ seed: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
342
+ service_tier: Optional[Literal["auto", "default"]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
343
+ stop: Union[Optional[str], List[str]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
344
+ store: Optional[bool] | OpenAINotGiven = OPENAI_NOT_GIVEN,
345
+ top_logprobs: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
346
+ user: str | OpenAINotGiven = OPENAI_NOT_GIVEN,
347
+ extra_headers: Headers | None = None,
348
+ extra_query: Query | None = None,
349
+ extra_body: Body | None = None,
350
+ timeout: float | httpx.Timeout | None | OpenAINotGiven = OPENAI_NOT_GIVEN,
288
351
  ) -> Generator[ChatCompletionDeltaMessage, None, None]:
289
352
  pass
290
353
 
@@ -299,11 +362,33 @@ class AnthropicChatClient(BaseChatClient):
299
362
  max_tokens: int | None = None,
300
363
  tools: Iterable[ToolParam] | NotGiven = NOT_GIVEN,
301
364
  tool_choice: ToolChoice | NotGiven = NOT_GIVEN,
302
- response_format: dict | None = None,
365
+ response_format: ResponseFormat | NotGiven = NOT_GIVEN,
303
366
  stream_options: ChatCompletionStreamOptionsParam | None = None,
304
367
  top_p: float | NotGiven | None = NOT_GIVEN,
305
368
  skip_cutoff: bool = False,
306
- **kwargs,
369
+ audio: Optional[ChatCompletionAudioParam] | OpenAINotGiven = OPENAI_NOT_GIVEN,
370
+ frequency_penalty: Optional[float] | OpenAINotGiven = OPENAI_NOT_GIVEN,
371
+ logit_bias: Optional[Dict[str, int]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
372
+ logprobs: Optional[bool] | OpenAINotGiven = OPENAI_NOT_GIVEN,
373
+ max_completion_tokens: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
374
+ metadata: Optional[Metadata] | OpenAINotGiven = OPENAI_NOT_GIVEN,
375
+ modalities: Optional[List[ChatCompletionModality]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
376
+ n: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
377
+ parallel_tool_calls: bool | OpenAINotGiven = OPENAI_NOT_GIVEN,
378
+ prediction: Optional[ChatCompletionPredictionContentParam] | OpenAINotGiven = OPENAI_NOT_GIVEN,
379
+ presence_penalty: Optional[float] | OpenAINotGiven = OPENAI_NOT_GIVEN,
380
+ reasoning_effort: Optional[ChatCompletionReasoningEffort] | OpenAINotGiven = OPENAI_NOT_GIVEN,
381
+ thinking: ThinkingConfigParam | None | NotGiven = NOT_GIVEN,
382
+ seed: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
383
+ service_tier: Optional[Literal["auto", "default"]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
384
+ stop: Union[Optional[str], List[str]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
385
+ store: Optional[bool] | OpenAINotGiven = OPENAI_NOT_GIVEN,
386
+ top_logprobs: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
387
+ user: str | OpenAINotGiven = OPENAI_NOT_GIVEN,
388
+ extra_headers: Headers | None = None,
389
+ extra_query: Query | None = None,
390
+ extra_body: Body | None = None,
391
+ timeout: float | httpx.Timeout | None | OpenAINotGiven = OPENAI_NOT_GIVEN,
307
392
  ) -> ChatCompletionMessage | Generator[ChatCompletionDeltaMessage, Any, None]:
308
393
  pass
309
394
 
@@ -317,11 +402,33 @@ class AnthropicChatClient(BaseChatClient):
317
402
  max_tokens: int | None = None,
318
403
  tools: Iterable[ToolParam] | NotGiven = NOT_GIVEN,
319
404
  tool_choice: ToolChoice | NotGiven = NOT_GIVEN,
320
- response_format: dict | None = None,
405
+ response_format: ResponseFormat | NotGiven = NOT_GIVEN,
321
406
  stream_options: ChatCompletionStreamOptionsParam | None = None,
322
407
  top_p: float | NotGiven | None = NOT_GIVEN,
323
408
  skip_cutoff: bool = False,
324
- **kwargs,
409
+ audio: Optional[ChatCompletionAudioParam] | OpenAINotGiven = OPENAI_NOT_GIVEN,
410
+ frequency_penalty: Optional[float] | OpenAINotGiven = OPENAI_NOT_GIVEN,
411
+ logit_bias: Optional[Dict[str, int]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
412
+ logprobs: Optional[bool] | OpenAINotGiven = OPENAI_NOT_GIVEN,
413
+ max_completion_tokens: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
414
+ metadata: Optional[Metadata] | OpenAINotGiven = OPENAI_NOT_GIVEN,
415
+ modalities: Optional[List[ChatCompletionModality]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
416
+ n: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
417
+ parallel_tool_calls: bool | OpenAINotGiven = OPENAI_NOT_GIVEN,
418
+ prediction: Optional[ChatCompletionPredictionContentParam] | OpenAINotGiven = OPENAI_NOT_GIVEN,
419
+ presence_penalty: Optional[float] | OpenAINotGiven = OPENAI_NOT_GIVEN,
420
+ reasoning_effort: Optional[ChatCompletionReasoningEffort] | OpenAINotGiven = OPENAI_NOT_GIVEN,
421
+ thinking: ThinkingConfigParam | None | NotGiven = NOT_GIVEN,
422
+ seed: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
423
+ service_tier: Optional[Literal["auto", "default"]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
424
+ stop: Union[Optional[str], List[str]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
425
+ store: Optional[bool] | OpenAINotGiven = OPENAI_NOT_GIVEN,
426
+ top_logprobs: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
427
+ user: str | OpenAINotGiven = OPENAI_NOT_GIVEN,
428
+ extra_headers: Headers | None = None,
429
+ extra_query: Query | None = None,
430
+ extra_body: Body | None = None,
431
+ timeout: float | httpx.Timeout | None | OpenAINotGiven = OPENAI_NOT_GIVEN,
325
432
  ):
326
433
  if model is not None:
327
434
  self.model = model
@@ -342,9 +449,6 @@ class AnthropicChatClient(BaseChatClient):
342
449
 
343
450
  formatted_messages = refactor_into_openai_messages(messages)
344
451
 
345
- if "thinking" in kwargs:
346
- kwargs.pop("thinking") # TODO: 暂时没看到如何处理 openai 接口的 thinking 参数,如 openrouter 中使用
347
-
348
452
  if self.stream:
349
453
 
350
454
  def _generator():
@@ -369,7 +473,28 @@ class AnthropicChatClient(BaseChatClient):
369
473
  stream_options=stream_options,
370
474
  top_p=top_p,
371
475
  skip_cutoff=skip_cutoff,
372
- **kwargs,
476
+ audio=audio,
477
+ frequency_penalty=frequency_penalty,
478
+ logit_bias=logit_bias,
479
+ logprobs=logprobs,
480
+ max_completion_tokens=max_completion_tokens,
481
+ metadata=metadata,
482
+ modalities=modalities,
483
+ n=n,
484
+ parallel_tool_calls=parallel_tool_calls,
485
+ prediction=prediction,
486
+ presence_penalty=presence_penalty,
487
+ reasoning_effort=reasoning_effort,
488
+ seed=seed,
489
+ service_tier=service_tier,
490
+ stop=stop,
491
+ store=store,
492
+ top_logprobs=top_logprobs,
493
+ user=user,
494
+ extra_headers=extra_headers,
495
+ extra_query=extra_query,
496
+ extra_body=extra_body,
497
+ timeout=timeout,
373
498
  )
374
499
  for chunk in response:
375
500
  yield chunk
@@ -396,7 +521,28 @@ class AnthropicChatClient(BaseChatClient):
396
521
  response_format=response_format,
397
522
  top_p=top_p,
398
523
  skip_cutoff=skip_cutoff,
399
- **kwargs,
524
+ audio=audio,
525
+ frequency_penalty=frequency_penalty,
526
+ logit_bias=logit_bias,
527
+ logprobs=logprobs,
528
+ max_completion_tokens=max_completion_tokens,
529
+ metadata=metadata,
530
+ modalities=modalities,
531
+ n=n,
532
+ parallel_tool_calls=parallel_tool_calls,
533
+ prediction=prediction,
534
+ presence_penalty=presence_penalty,
535
+ reasoning_effort=reasoning_effort,
536
+ seed=seed,
537
+ service_tier=service_tier,
538
+ stop=stop,
539
+ store=store,
540
+ top_logprobs=top_logprobs,
541
+ user=user,
542
+ extra_headers=extra_headers,
543
+ extra_query=extra_query,
544
+ extra_body=extra_body,
545
+ timeout=timeout,
400
546
  )
401
547
 
402
548
  raw_client = self.raw_client # 调用完 self.raw_client 后,self.model_id 会被赋值
@@ -410,6 +556,8 @@ class AnthropicChatClient(BaseChatClient):
410
556
  top_p = NOT_GIVEN
411
557
  if isinstance(self.temperature, NotGiven) or self.temperature is None:
412
558
  self.temperature = NOT_GIVEN
559
+ if isinstance(thinking, NotGiven) or thinking is None:
560
+ thinking = NOT_GIVEN
413
561
 
414
562
  if messages[0].get("role") == "system":
415
563
  system_prompt: str = messages[0]["content"]
@@ -454,7 +602,7 @@ class AnthropicChatClient(BaseChatClient):
454
602
  tools=tools_params,
455
603
  tool_choice=tool_choice_param,
456
604
  top_p=top_p,
457
- **kwargs,
605
+ thinking=thinking,
458
606
  )
459
607
 
460
608
  def generator():
@@ -528,7 +676,7 @@ class AnthropicChatClient(BaseChatClient):
528
676
  tools=tools_params,
529
677
  tool_choice=tool_choice_param,
530
678
  top_p=top_p,
531
- **kwargs,
679
+ thinking=thinking,
532
680
  )
533
681
 
534
682
  result = {
@@ -662,11 +810,33 @@ class AsyncAnthropicChatClient(BaseAsyncChatClient):
662
810
  max_tokens: int | None = None,
663
811
  tools: Iterable[ToolParam] | NotGiven = NOT_GIVEN,
664
812
  tool_choice: ToolChoice | NotGiven = NOT_GIVEN,
665
- response_format: dict | None = None,
813
+ response_format: ResponseFormat | NotGiven = NOT_GIVEN,
666
814
  stream_options: ChatCompletionStreamOptionsParam | None = None,
667
815
  top_p: float | NotGiven | None = NOT_GIVEN,
668
816
  skip_cutoff: bool = False,
669
- **kwargs,
817
+ audio: Optional[ChatCompletionAudioParam] | OpenAINotGiven = OPENAI_NOT_GIVEN,
818
+ frequency_penalty: Optional[float] | OpenAINotGiven = OPENAI_NOT_GIVEN,
819
+ logit_bias: Optional[Dict[str, int]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
820
+ logprobs: Optional[bool] | OpenAINotGiven = OPENAI_NOT_GIVEN,
821
+ max_completion_tokens: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
822
+ metadata: Optional[Metadata] | OpenAINotGiven = OPENAI_NOT_GIVEN,
823
+ modalities: Optional[List[ChatCompletionModality]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
824
+ n: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
825
+ parallel_tool_calls: bool | OpenAINotGiven = OPENAI_NOT_GIVEN,
826
+ prediction: Optional[ChatCompletionPredictionContentParam] | OpenAINotGiven = OPENAI_NOT_GIVEN,
827
+ presence_penalty: Optional[float] | OpenAINotGiven = OPENAI_NOT_GIVEN,
828
+ reasoning_effort: Optional[ChatCompletionReasoningEffort] | OpenAINotGiven = OPENAI_NOT_GIVEN,
829
+ thinking: ThinkingConfigParam | None | NotGiven = NOT_GIVEN,
830
+ seed: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
831
+ service_tier: Optional[Literal["auto", "default"]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
832
+ stop: Union[Optional[str], List[str]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
833
+ store: Optional[bool] | OpenAINotGiven = OPENAI_NOT_GIVEN,
834
+ top_logprobs: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
835
+ user: str | OpenAINotGiven = OPENAI_NOT_GIVEN,
836
+ extra_headers: Headers | None = None,
837
+ extra_query: Query | None = None,
838
+ extra_body: Body | None = None,
839
+ timeout: float | httpx.Timeout | None | OpenAINotGiven = OPENAI_NOT_GIVEN,
670
840
  ) -> ChatCompletionMessage:
671
841
  pass
672
842
 
@@ -681,11 +851,33 @@ class AsyncAnthropicChatClient(BaseAsyncChatClient):
681
851
  max_tokens: int | None = None,
682
852
  tools: Iterable[ToolParam] | NotGiven = NOT_GIVEN,
683
853
  tool_choice: ToolChoice | NotGiven = NOT_GIVEN,
684
- response_format: dict | None = None,
854
+ response_format: ResponseFormat | NotGiven = NOT_GIVEN,
685
855
  stream_options: ChatCompletionStreamOptionsParam | None = None,
686
856
  top_p: float | NotGiven | None = NOT_GIVEN,
687
857
  skip_cutoff: bool = False,
688
- **kwargs,
858
+ audio: Optional[ChatCompletionAudioParam] | OpenAINotGiven = OPENAI_NOT_GIVEN,
859
+ frequency_penalty: Optional[float] | OpenAINotGiven = OPENAI_NOT_GIVEN,
860
+ logit_bias: Optional[Dict[str, int]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
861
+ logprobs: Optional[bool] | OpenAINotGiven = OPENAI_NOT_GIVEN,
862
+ max_completion_tokens: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
863
+ metadata: Optional[Metadata] | OpenAINotGiven = OPENAI_NOT_GIVEN,
864
+ modalities: Optional[List[ChatCompletionModality]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
865
+ n: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
866
+ parallel_tool_calls: bool | OpenAINotGiven = OPENAI_NOT_GIVEN,
867
+ prediction: Optional[ChatCompletionPredictionContentParam] | OpenAINotGiven = OPENAI_NOT_GIVEN,
868
+ presence_penalty: Optional[float] | OpenAINotGiven = OPENAI_NOT_GIVEN,
869
+ reasoning_effort: Optional[ChatCompletionReasoningEffort] | OpenAINotGiven = OPENAI_NOT_GIVEN,
870
+ thinking: ThinkingConfigParam | None | NotGiven = NOT_GIVEN,
871
+ seed: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
872
+ service_tier: Optional[Literal["auto", "default"]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
873
+ stop: Union[Optional[str], List[str]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
874
+ store: Optional[bool] | OpenAINotGiven = OPENAI_NOT_GIVEN,
875
+ top_logprobs: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
876
+ user: str | OpenAINotGiven = OPENAI_NOT_GIVEN,
877
+ extra_headers: Headers | None = None,
878
+ extra_query: Query | None = None,
879
+ extra_body: Body | None = None,
880
+ timeout: float | httpx.Timeout | None | OpenAINotGiven = OPENAI_NOT_GIVEN,
689
881
  ) -> AsyncGenerator[ChatCompletionDeltaMessage, Any]:
690
882
  pass
691
883
 
@@ -700,11 +892,33 @@ class AsyncAnthropicChatClient(BaseAsyncChatClient):
700
892
  max_tokens: int | None = None,
701
893
  tools: Iterable[ToolParam] | NotGiven = NOT_GIVEN,
702
894
  tool_choice: ToolChoice | NotGiven = NOT_GIVEN,
703
- response_format: dict | None = None,
895
+ response_format: ResponseFormat | NotGiven = NOT_GIVEN,
704
896
  stream_options: ChatCompletionStreamOptionsParam | None = None,
705
897
  top_p: float | NotGiven | None = NOT_GIVEN,
706
898
  skip_cutoff: bool = False,
707
- **kwargs,
899
+ audio: Optional[ChatCompletionAudioParam] | OpenAINotGiven = OPENAI_NOT_GIVEN,
900
+ frequency_penalty: Optional[float] | OpenAINotGiven = OPENAI_NOT_GIVEN,
901
+ logit_bias: Optional[Dict[str, int]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
902
+ logprobs: Optional[bool] | OpenAINotGiven = OPENAI_NOT_GIVEN,
903
+ max_completion_tokens: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
904
+ metadata: Optional[Metadata] | OpenAINotGiven = OPENAI_NOT_GIVEN,
905
+ modalities: Optional[List[ChatCompletionModality]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
906
+ n: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
907
+ parallel_tool_calls: bool | OpenAINotGiven = OPENAI_NOT_GIVEN,
908
+ prediction: Optional[ChatCompletionPredictionContentParam] | OpenAINotGiven = OPENAI_NOT_GIVEN,
909
+ presence_penalty: Optional[float] | OpenAINotGiven = OPENAI_NOT_GIVEN,
910
+ reasoning_effort: Optional[ChatCompletionReasoningEffort] | OpenAINotGiven = OPENAI_NOT_GIVEN,
911
+ thinking: ThinkingConfigParam | None | NotGiven = NOT_GIVEN,
912
+ seed: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
913
+ service_tier: Optional[Literal["auto", "default"]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
914
+ stop: Union[Optional[str], List[str]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
915
+ store: Optional[bool] | OpenAINotGiven = OPENAI_NOT_GIVEN,
916
+ top_logprobs: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
917
+ user: str | OpenAINotGiven = OPENAI_NOT_GIVEN,
918
+ extra_headers: Headers | None = None,
919
+ extra_query: Query | None = None,
920
+ extra_body: Body | None = None,
921
+ timeout: float | httpx.Timeout | None | OpenAINotGiven = OPENAI_NOT_GIVEN,
708
922
  ) -> ChatCompletionMessage | AsyncGenerator[ChatCompletionDeltaMessage, Any]:
709
923
  pass
710
924
 
@@ -718,11 +932,33 @@ class AsyncAnthropicChatClient(BaseAsyncChatClient):
718
932
  max_tokens: int | None = None,
719
933
  tools: Iterable[ToolParam] | NotGiven = NOT_GIVEN,
720
934
  tool_choice: ToolChoice | NotGiven = NOT_GIVEN,
721
- response_format: dict | None = None,
935
+ response_format: ResponseFormat | NotGiven = NOT_GIVEN,
722
936
  stream_options: ChatCompletionStreamOptionsParam | None = None,
723
937
  top_p: float | NotGiven | None = NOT_GIVEN,
724
938
  skip_cutoff: bool = False,
725
- **kwargs,
939
+ audio: Optional[ChatCompletionAudioParam] | OpenAINotGiven = OPENAI_NOT_GIVEN,
940
+ frequency_penalty: Optional[float] | OpenAINotGiven = OPENAI_NOT_GIVEN,
941
+ logit_bias: Optional[Dict[str, int]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
942
+ logprobs: Optional[bool] | OpenAINotGiven = OPENAI_NOT_GIVEN,
943
+ max_completion_tokens: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
944
+ metadata: Optional[Metadata] | OpenAINotGiven = OPENAI_NOT_GIVEN,
945
+ modalities: Optional[List[ChatCompletionModality]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
946
+ n: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
947
+ parallel_tool_calls: bool | OpenAINotGiven = OPENAI_NOT_GIVEN,
948
+ prediction: Optional[ChatCompletionPredictionContentParam] | OpenAINotGiven = OPENAI_NOT_GIVEN,
949
+ presence_penalty: Optional[float] | OpenAINotGiven = OPENAI_NOT_GIVEN,
950
+ reasoning_effort: Optional[ChatCompletionReasoningEffort] | OpenAINotGiven = OPENAI_NOT_GIVEN,
951
+ thinking: ThinkingConfigParam | None | NotGiven = NOT_GIVEN,
952
+ seed: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
953
+ service_tier: Optional[Literal["auto", "default"]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
954
+ stop: Union[Optional[str], List[str]] | OpenAINotGiven = OPENAI_NOT_GIVEN,
955
+ store: Optional[bool] | OpenAINotGiven = OPENAI_NOT_GIVEN,
956
+ top_logprobs: Optional[int] | OpenAINotGiven = OPENAI_NOT_GIVEN,
957
+ user: str | OpenAINotGiven = OPENAI_NOT_GIVEN,
958
+ extra_headers: Headers | None = None,
959
+ extra_query: Query | None = None,
960
+ extra_body: Body | None = None,
961
+ timeout: float | httpx.Timeout | None | OpenAINotGiven = OPENAI_NOT_GIVEN,
726
962
  ):
727
963
  if model is not None:
728
964
  self.model = model
@@ -743,9 +979,6 @@ class AsyncAnthropicChatClient(BaseAsyncChatClient):
743
979
 
744
980
  formatted_messages = refactor_into_openai_messages(messages)
745
981
 
746
- if "thinking" in kwargs:
747
- kwargs.pop("thinking") # TODO: 暂时没看到如何处理 openai 接口的 thinking 参数,如 openrouter 中使用
748
-
749
982
  if self.stream:
750
983
 
751
984
  async def _generator():
@@ -771,7 +1004,28 @@ class AsyncAnthropicChatClient(BaseAsyncChatClient):
771
1004
  stream_options=stream_options,
772
1005
  top_p=top_p,
773
1006
  skip_cutoff=skip_cutoff,
774
- **kwargs,
1007
+ audio=audio,
1008
+ frequency_penalty=frequency_penalty,
1009
+ logit_bias=logit_bias,
1010
+ logprobs=logprobs,
1011
+ max_completion_tokens=max_completion_tokens,
1012
+ metadata=metadata,
1013
+ modalities=modalities,
1014
+ n=n,
1015
+ parallel_tool_calls=parallel_tool_calls,
1016
+ prediction=prediction,
1017
+ presence_penalty=presence_penalty,
1018
+ reasoning_effort=reasoning_effort,
1019
+ seed=seed,
1020
+ service_tier=service_tier,
1021
+ stop=stop,
1022
+ store=store,
1023
+ top_logprobs=top_logprobs,
1024
+ user=user,
1025
+ extra_headers=extra_headers,
1026
+ extra_query=extra_query,
1027
+ extra_body=extra_body,
1028
+ timeout=timeout,
775
1029
  )
776
1030
  async for chunk in response:
777
1031
  yield chunk
@@ -799,7 +1053,28 @@ class AsyncAnthropicChatClient(BaseAsyncChatClient):
799
1053
  response_format=response_format,
800
1054
  top_p=top_p,
801
1055
  skip_cutoff=skip_cutoff,
802
- **kwargs,
1056
+ audio=audio,
1057
+ frequency_penalty=frequency_penalty,
1058
+ logit_bias=logit_bias,
1059
+ logprobs=logprobs,
1060
+ max_completion_tokens=max_completion_tokens,
1061
+ metadata=metadata,
1062
+ modalities=modalities,
1063
+ n=n,
1064
+ parallel_tool_calls=parallel_tool_calls,
1065
+ prediction=prediction,
1066
+ presence_penalty=presence_penalty,
1067
+ reasoning_effort=reasoning_effort,
1068
+ seed=seed,
1069
+ service_tier=service_tier,
1070
+ stop=stop,
1071
+ store=store,
1072
+ top_logprobs=top_logprobs,
1073
+ user=user,
1074
+ extra_headers=extra_headers,
1075
+ extra_query=extra_query,
1076
+ extra_body=extra_body,
1077
+ timeout=timeout,
803
1078
  )
804
1079
 
805
1080
  raw_client = self.raw_client # 调用完 self.raw_client 后,self.model_id 会被赋值
@@ -813,6 +1088,8 @@ class AsyncAnthropicChatClient(BaseAsyncChatClient):
813
1088
  top_p = NOT_GIVEN
814
1089
  if isinstance(self.temperature, NotGiven) or self.temperature is None:
815
1090
  self.temperature = NOT_GIVEN
1091
+ if isinstance(thinking, NotGiven) or thinking is None:
1092
+ thinking = NOT_GIVEN
816
1093
 
817
1094
  if messages[0].get("role") == "system":
818
1095
  system_prompt = messages[0]["content"]
@@ -857,7 +1134,7 @@ class AsyncAnthropicChatClient(BaseAsyncChatClient):
857
1134
  tools=tools_params,
858
1135
  tool_choice=tool_choice_param,
859
1136
  top_p=top_p,
860
- **kwargs,
1137
+ thinking=thinking,
861
1138
  )
862
1139
 
863
1140
  async def generator():
@@ -931,7 +1208,7 @@ class AsyncAnthropicChatClient(BaseAsyncChatClient):
931
1208
  tools=tools_params,
932
1209
  tool_choice=tool_choice_param,
933
1210
  top_p=top_p,
934
- **kwargs,
1211
+ thinking=thinking,
935
1212
  )
936
1213
 
937
1214
  result = {