mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-08 03:08:45 +00:00
parent
58c8c2b7b1
commit
0dfc3fad5a
2 changed files with 269 additions and 13 deletions
|
|
@ -4121,7 +4121,21 @@ def get_optional_params( # noqa: PLR0915
|
|||
),
|
||||
)
|
||||
elif "anthropic" in bedrock_base_model and bedrock_route == "invoke":
|
||||
if bedrock_base_model.startswith("anthropic.claude-3"):
|
||||
if (
|
||||
bedrock_base_model
|
||||
in litellm.AmazonAnthropicConfig.get_legacy_anthropic_model_names()
|
||||
):
|
||||
optional_params = litellm.AmazonAnthropicConfig().map_openai_params(
|
||||
non_default_params=non_default_params,
|
||||
optional_params=optional_params,
|
||||
model=model,
|
||||
drop_params=(
|
||||
drop_params
|
||||
if drop_params is not None and isinstance(drop_params, bool)
|
||||
else False
|
||||
),
|
||||
)
|
||||
else:
|
||||
optional_params = (
|
||||
litellm.AmazonAnthropicClaudeConfig().map_openai_params(
|
||||
non_default_params=non_default_params,
|
||||
|
|
@ -4134,18 +4148,6 @@ def get_optional_params( # noqa: PLR0915
|
|||
),
|
||||
)
|
||||
)
|
||||
|
||||
else:
|
||||
optional_params = litellm.AmazonAnthropicConfig().map_openai_params(
|
||||
non_default_params=non_default_params,
|
||||
optional_params=optional_params,
|
||||
model=model,
|
||||
drop_params=(
|
||||
drop_params
|
||||
if drop_params is not None and isinstance(drop_params, bool)
|
||||
else False
|
||||
),
|
||||
)
|
||||
elif provider_config is not None:
|
||||
optional_params = provider_config.map_openai_params(
|
||||
non_default_params=non_default_params,
|
||||
|
|
|
|||
|
|
@ -1471,6 +1471,260 @@ def test_bedrock_invoke_anthropic_max_tokens():
|
|||
assert optional_params["max_tokens"] == 1024
|
||||
|
||||
|
||||
def test_bedrock_invoke_claude_4_anthropic_max_tokens():
|
||||
passed_params = {
|
||||
"model": "invoke/us.anthropic.claude-sonnet-4-5-20250929-v1:0",
|
||||
"functions": None,
|
||||
"function_call": None,
|
||||
"temperature": 0.8,
|
||||
"top_p": None,
|
||||
"n": 1,
|
||||
"stream": False,
|
||||
"stream_options": None,
|
||||
"stop": None,
|
||||
"max_tokens": None,
|
||||
"max_completion_tokens": 1024,
|
||||
"modalities": None,
|
||||
"prediction": None,
|
||||
"audio": None,
|
||||
"presence_penalty": None,
|
||||
"frequency_penalty": None,
|
||||
"logit_bias": None,
|
||||
"user": None,
|
||||
"custom_llm_provider": "bedrock",
|
||||
"response_format": {"type": "text"},
|
||||
"seed": None,
|
||||
"tools": [
|
||||
{
|
||||
"type": "function",
|
||||
"function": {
|
||||
"name": "generate_plan",
|
||||
"description": "Generate a plan to execute the task using only the tools outlined in your context.",
|
||||
"input_schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"steps": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"description": "The type of step to execute",
|
||||
},
|
||||
"tool_name": {
|
||||
"type": "string",
|
||||
"description": "The name of the tool to use for this step",
|
||||
},
|
||||
"tool_input": {
|
||||
"type": "object",
|
||||
"description": "The input to pass to the tool. Make sure this complies with the schema for the tool.",
|
||||
},
|
||||
"tool_output": {
|
||||
"type": "object",
|
||||
"description": "(Optional) The output from the tool if needed for future steps. Make sure this complies with the schema for the tool.",
|
||||
},
|
||||
},
|
||||
"required": ["type"],
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"type": "function",
|
||||
"function": {
|
||||
"name": "generate_wire_tool",
|
||||
"description": "Create a wire transfer with complete wire instructions",
|
||||
"input_schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"company_id": {
|
||||
"type": "integer",
|
||||
"description": "The ID of the company receiving the investment",
|
||||
},
|
||||
"investment_id": {
|
||||
"type": "integer",
|
||||
"description": "The ID of the investment memo",
|
||||
},
|
||||
"dollar_amount": {
|
||||
"type": "number",
|
||||
"description": "The amount to wire in USD",
|
||||
},
|
||||
"wiring_instructions": {
|
||||
"type": "object",
|
||||
"description": "Complete bank account and routing information for the wire",
|
||||
"properties": {
|
||||
"account_name": {
|
||||
"type": "string",
|
||||
"description": "Name on the bank account",
|
||||
},
|
||||
"address_1": {
|
||||
"type": "string",
|
||||
"description": "Primary address line",
|
||||
},
|
||||
"address_2": {
|
||||
"type": "string",
|
||||
"description": "Secondary address line (optional)",
|
||||
},
|
||||
"city": {"type": "string"},
|
||||
"state": {"type": "string"},
|
||||
"zip": {"type": "string"},
|
||||
"country": {"type": "string", "default": "US"},
|
||||
"bank_name": {"type": "string"},
|
||||
"account_number": {"type": "string"},
|
||||
"routing_number": {"type": "string"},
|
||||
"account_type": {
|
||||
"type": "string",
|
||||
"enum": ["checking", "savings"],
|
||||
"default": "checking",
|
||||
},
|
||||
"swift_code": {
|
||||
"type": "string",
|
||||
"description": "Required for international wires",
|
||||
},
|
||||
"iban": {
|
||||
"type": "string",
|
||||
"description": "Required for some international wires",
|
||||
},
|
||||
"bank_city": {"type": "string"},
|
||||
"bank_state": {"type": "string"},
|
||||
"bank_country": {"type": "string", "default": "US"},
|
||||
"bank_to_bank_instructions": {
|
||||
"type": "string",
|
||||
"description": "Additional instructions for the bank (optional)",
|
||||
},
|
||||
"intermediary_bank_name": {
|
||||
"type": "string",
|
||||
"description": "Name of intermediary bank if required (optional)",
|
||||
},
|
||||
},
|
||||
"required": [
|
||||
"account_name",
|
||||
"address_1",
|
||||
"country",
|
||||
"bank_name",
|
||||
"account_number",
|
||||
"routing_number",
|
||||
"account_type",
|
||||
"bank_country",
|
||||
],
|
||||
},
|
||||
},
|
||||
"required": [
|
||||
"company_id",
|
||||
"investment_id",
|
||||
"dollar_amount",
|
||||
"wiring_instructions",
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"type": "function",
|
||||
"function": {
|
||||
"name": "search_companies",
|
||||
"description": "Search for companies by name or other criteria to get their IDs",
|
||||
"input_schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"query": {
|
||||
"type": "string",
|
||||
"description": "Name or part of name to search for",
|
||||
},
|
||||
"batch": {
|
||||
"type": "string",
|
||||
"description": 'Optional batch filter (e.g., "W21", "S22")',
|
||||
},
|
||||
"status": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"live",
|
||||
"dead",
|
||||
"adrift",
|
||||
"exited",
|
||||
"went_public",
|
||||
"all",
|
||||
],
|
||||
"description": "Filter by company status",
|
||||
"default": "live",
|
||||
},
|
||||
"limit": {
|
||||
"type": "integer",
|
||||
"description": "Maximum number of results to return",
|
||||
"default": 10,
|
||||
},
|
||||
},
|
||||
"required": ["query"],
|
||||
},
|
||||
"output_schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"status": {
|
||||
"type": "string",
|
||||
"description": "Success or error status",
|
||||
},
|
||||
"results": {
|
||||
"type": "array",
|
||||
"description": "List of companies matching the search criteria",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"description": "Company ID to use in other API calls",
|
||||
},
|
||||
"name": {"type": "string"},
|
||||
"batch": {"type": "string"},
|
||||
"status": {"type": "string"},
|
||||
"valuation": {"type": "string"},
|
||||
"url": {"type": "string"},
|
||||
"description": {"type": "string"},
|
||||
"founders": {"type": "string"},
|
||||
},
|
||||
},
|
||||
},
|
||||
"results_count": {
|
||||
"type": "integer",
|
||||
"description": "Number of companies returned",
|
||||
},
|
||||
"total_matches": {
|
||||
"type": "integer",
|
||||
"description": "Total number of matches found",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
"tool_choice": None,
|
||||
"max_retries": 0,
|
||||
"logprobs": None,
|
||||
"top_logprobs": None,
|
||||
"extra_headers": None,
|
||||
"api_version": None,
|
||||
"parallel_tool_calls": None,
|
||||
"drop_params": True,
|
||||
"reasoning_effort": None,
|
||||
"additional_drop_params": None,
|
||||
"messages": [
|
||||
{
|
||||
"role": "system",
|
||||
"content": "You are an AI assistant that helps prepare a wire for a pro rata investment.",
|
||||
},
|
||||
{"role": "user", "content": [{"type": "text", "text": "hi"}]},
|
||||
],
|
||||
"thinking": None,
|
||||
"kwargs": {},
|
||||
}
|
||||
optional_params = get_optional_params(**passed_params)
|
||||
print(f"optional_params: {optional_params}")
|
||||
|
||||
assert "max_tokens_to_sample" not in optional_params
|
||||
assert optional_params["max_tokens"] == 1024
|
||||
|
||||
|
||||
def test_azure_modalities_param():
|
||||
optional_params = get_optional_params(
|
||||
model="chatgpt-v2",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue