_convert_from_v1_to_anthropic() — langchain Function Reference
Architecture documentation for the _convert_from_v1_to_anthropic() function in _compat.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 02f601bc_0436_a4b9_4ca2_139300c429ca["_convert_from_v1_to_anthropic()"] 229dd2f8_cd21_122c_8dc9_e4e6685d089f["_compat.py"] 02f601bc_0436_a4b9_4ca2_139300c429ca -->|defined in| 229dd2f8_cd21_122c_8dc9_e4e6685d089f b37385b6_2524_151c_2d19_4c6b96b5a5d4["_convert_annotation_from_v1()"] 02f601bc_0436_a4b9_4ca2_139300c429ca -->|calls| b37385b6_2524_151c_2d19_4c6b96b5a5d4 style 02f601bc_0436_a4b9_4ca2_139300c429ca fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/partners/anthropic/langchain_anthropic/_compat.py lines 96–199
def _convert_from_v1_to_anthropic(
content: list[types.ContentBlock],
tool_calls: list[types.ToolCall],
model_provider: str | None,
) -> list[dict[str, Any]]:
new_content: list = []
for block in content:
if block["type"] == "text":
if model_provider == "anthropic" and "annotations" in block:
new_block: dict[str, Any] = {"type": "text"}
new_block["citations"] = [
_convert_annotation_from_v1(a) for a in block["annotations"]
]
if "text" in block:
new_block["text"] = block["text"]
else:
new_block = {"text": block.get("text", ""), "type": "text"}
new_content.append(new_block)
elif block["type"] == "tool_call":
tool_use_block = {
"type": "tool_use",
"name": block.get("name", ""),
"input": block.get("args", {}),
"id": block.get("id", ""),
}
if "caller" in block.get("extras", {}):
tool_use_block["caller"] = block["extras"]["caller"]
new_content.append(tool_use_block)
elif block["type"] == "tool_call_chunk":
if isinstance(block["args"], str):
try:
input_ = json.loads(block["args"] or "{}")
except json.JSONDecodeError:
input_ = {}
else:
input_ = block.get("args") or {}
new_content.append(
{
"type": "tool_use",
"name": block.get("name", ""),
"input": input_,
"id": block.get("id", ""),
}
)
elif block["type"] == "reasoning" and model_provider == "anthropic":
new_block = {}
if "reasoning" in block:
new_block["thinking"] = block["reasoning"]
new_block["type"] = "thinking"
if signature := block.get("extras", {}).get("signature"):
new_block["signature"] = signature
new_content.append(new_block)
elif block["type"] == "server_tool_call" and model_provider == "anthropic":
new_block = {}
if "id" in block:
new_block["id"] = block["id"]
new_block["input"] = block.get("args", {})
if partial_json := block.get("extras", {}).get("partial_json"):
new_block["input"] = {}
new_block["partial_json"] = partial_json
else:
pass
if block.get("name") == "code_interpreter":
new_block["name"] = "code_execution"
elif block.get("name") == "remote_mcp":
if "tool_name" in block.get("extras", {}):
new_block["name"] = block["extras"]["tool_name"]
if "server_name" in block.get("extras", {}):
new_block["server_name"] = block["extras"]["server_name"]
else:
new_block["name"] = block.get("name", "")
if block.get("name") == "remote_mcp":
new_block["type"] = "mcp_tool_use"
else:
new_block["type"] = "server_tool_use"
new_content.append(new_block)
Domain
Subdomains
Source
Frequently Asked Questions
What does _convert_from_v1_to_anthropic() do?
_convert_from_v1_to_anthropic() is a function in the langchain codebase, defined in libs/partners/anthropic/langchain_anthropic/_compat.py.
Where is _convert_from_v1_to_anthropic() defined?
_convert_from_v1_to_anthropic() is defined in libs/partners/anthropic/langchain_anthropic/_compat.py at line 96.
What does _convert_from_v1_to_anthropic() call?
_convert_from_v1_to_anthropic() calls 1 function(s): _convert_annotation_from_v1.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free