diff --git a/docs/my-website/docs/providers/anthropic.md b/docs/my-website/docs/providers/anthropic.md index 09ed7887816..9e4f6908a46 100644 --- a/docs/my-website/docs/providers/anthropic.md +++ b/docs/my-website/docs/providers/anthropic.md @@ -821,6 +821,14 @@ print(f"\nResponse: {resp}") ## Usage - Thinking / `reasoning_content` +LiteLLM translates OpenAI's `reasoning_effort` to Anthropic's `thinking` parameter. [Code](https://github.com/BerriAI/litellm/blob/23051d89dd3611a81617d84277059cd88b2df511/litellm/llms/anthropic/chat/transformation.py#L298) + +| reasoning_effort | thinking | +| ---------------- | -------- | +| "low" | "budget_tokens": 1024 | +| "medium" | "budget_tokens": 2048 | +| "high" | "budget_tokens": 4096 | + @@ -830,7 +838,7 @@ from litellm import completion resp = completion( model="anthropic/claude-3-7-sonnet-20250219", messages=[{"role": "user", "content": "What is the capital of France?"}], - thinking={"type": "enabled", "budget_tokens": 1024}, + reasoning_effort="low", ) ``` @@ -863,7 +871,7 @@ curl http://0.0.0.0:4000/v1/chat/completions \ -d '{ "model": "claude-3-7-sonnet-20250219", "messages": [{"role": "user", "content": "What is the capital of France?"}], - "thinking": {"type": "enabled", "budget_tokens": 1024} + "reasoning_effort": "low" }' ``` @@ -927,6 +935,44 @@ ModelResponse( ) ``` +### Pass `thinking` to Anthropic models + +You can also pass the `thinking` parameter to Anthropic models. + + +You can also pass the `thinking` parameter to Anthropic models. + + + + +```python +response = litellm.completion( + model="anthropic/claude-3-7-sonnet-20250219", + messages=[{"role": "user", "content": "What is the capital of France?"}], + thinking={"type": "enabled", "budget_tokens": 1024}, +) +``` + + + + +```bash +curl http://0.0.0.0:4000/v1/chat/completions \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer $LITELLM_KEY" \ + -d '{ + "model": "anthropic/claude-3-7-sonnet-20250219", + "messages": [{"role": "user", "content": "What is the capital of France?"}], + "thinking": {"type": "enabled", "budget_tokens": 1024} + }' +``` + + + + + + + ## **Passing Extra Headers to Anthropic API** Pass `extra_headers: dict` to `litellm.completion` diff --git a/docs/my-website/docs/providers/bedrock.md b/docs/my-website/docs/providers/bedrock.md index bfb60e42c77..2a9c528a655 100644 --- a/docs/my-website/docs/providers/bedrock.md +++ b/docs/my-website/docs/providers/bedrock.md @@ -476,7 +476,7 @@ os.environ["AWS_REGION_NAME"] = "" resp = completion( model="bedrock/us.anthropic.claude-3-7-sonnet-20250219-v1:0", messages=[{"role": "user", "content": "What is the capital of France?"}], - thinking={"type": "enabled", "budget_tokens": 1024}, + reasoning_effort="low", ) print(resp) @@ -491,7 +491,7 @@ model_list: - model_name: bedrock-claude-3-7 litellm_params: model: bedrock/us.anthropic.claude-3-7-sonnet-20250219-v1:0 - thinking: {"type": "enabled", "budget_tokens": 1024} # 👈 EITHER HERE OR ON REQUEST + reasoning_effort: "low" # 👈 EITHER HERE OR ON REQUEST ``` 2. Start proxy @@ -509,7 +509,7 @@ curl http://0.0.0.0:4000/v1/chat/completions \ -d '{ "model": "bedrock-claude-3-7", "messages": [{"role": "user", "content": "What is the capital of France?"}], - "thinking": {"type": "enabled", "budget_tokens": 1024} # 👈 EITHER HERE OR ON CONFIG.YAML + "reasoning_effort": "low" # 👈 EITHER HERE OR ON CONFIG.YAML }' ``` @@ -558,6 +558,10 @@ Same as [Anthropic API response](../providers/anthropic#usage---thinking--reason } ``` +### Pass `thinking` to Anthropic models + +Same as [Anthropic API response](../providers/anthropic#usage---thinking--reasoning_content). + ## Usage - Structured Output / JSON mode diff --git a/docs/my-website/docs/reasoning_content.md b/docs/my-website/docs/reasoning_content.md index 1cce3f05701..45f7aad0f17 100644 --- a/docs/my-website/docs/reasoning_content.md +++ b/docs/my-website/docs/reasoning_content.md @@ -48,7 +48,7 @@ response = completion( messages=[ {"role": "user", "content": "What is the capital of France?"}, ], - thinking={"type": "enabled", "budget_tokens": 1024} # 👈 REQUIRED FOR ANTHROPIC models (on `anthropic/`, `bedrock/`, `vertexai/`) + reasoning_effort="low", ) print(response.choices[0].message.content) ``` @@ -68,7 +68,7 @@ curl http://0.0.0.0:4000/v1/chat/completions \ "content": "What is the capital of France?" } ], - "thinking": {"type": "enabled", "budget_tokens": 1024} + "reasoning_effort": "low" }' ``` @@ -150,7 +150,7 @@ response = litellm.completion( messages=messages, tools=tools, tool_choice="auto", # auto is default, but we'll be explicit - thinking={"type": "enabled", "budget_tokens": 1024}, + reasoning_effort="low", ) print("Response\n", response) response_message = response.choices[0].message @@ -198,9 +198,9 @@ if tool_calls: model=model, messages=messages, seed=22, + reasoning_effort="low", # tools=tools, drop_params=True, - thinking={"type": "enabled", "budget_tokens": 1024}, ) # get a new response from the model where it can see the function response print("second response\n", second_response) ``` @@ -340,7 +340,7 @@ litellm.drop_params = True # 👈 EITHER GLOBALLY or per request response = litellm.completion( model="anthropic/claude-3-7-sonnet-20250219", messages=[{"role": "user", "content": "What is the capital of France?"}], - thinking={"type": "enabled", "budget_tokens": 1024}, + reasoning_effort="low", drop_params=True, ) @@ -348,7 +348,7 @@ response = litellm.completion( response = litellm.completion( model="deepseek/deepseek-chat", messages=[{"role": "user", "content": "What is the capital of France?"}], - thinking={"type": "enabled", "budget_tokens": 1024}, + reasoning_effort="low", drop_params=True, ) ``` @@ -364,3 +364,36 @@ These fields can be accessed via `response.choices[0].message.reasoning_content` - `thinking` - str: The thinking from the model. - `signature` - str: The signature delta from the model. + + +## Pass `thinking` to Anthropic models + +You can also pass the `thinking` parameter to Anthropic models. + + + + +```python +response = litellm.completion( + model="anthropic/claude-3-7-sonnet-20250219", + messages=[{"role": "user", "content": "What is the capital of France?"}], + thinking={"type": "enabled", "budget_tokens": 1024}, +) +``` + + + + +```bash +curl http://0.0.0.0:4000/v1/chat/completions \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer $LITELLM_KEY" \ + -d '{ + "model": "anthropic/claude-3-7-sonnet-20250219", + "messages": [{"role": "user", "content": "What is the capital of France?"}], + "thinking": {"type": "enabled", "budget_tokens": 1024} + }' +``` + + +