initial commit

This commit is contained in:
2026-05-11 12:36:20 +05:30
commit 384cbe8019
15377 changed files with 2360544 additions and 0 deletions

View File

@@ -0,0 +1,67 @@
"""Go from v1 content blocks to Ollama SDK format."""
from typing import Any
from langchain_core.messages import content as types
def _convert_from_v1_to_ollama(
content: list[types.ContentBlock],
model_provider: str | None, # noqa: ARG001
) -> list[dict[str, Any]]:
"""Convert v1 content blocks to Ollama format.
Args:
content: List of v1 `ContentBlock` objects.
model_provider: The model provider name that generated the v1 content.
Returns:
TODO
"""
new_content: list = []
for block in content:
if not isinstance(block, dict) or "type" not in block:
continue
block_dict = dict(block) # (For typing)
# TextContentBlock
if block_dict["type"] == "text":
# Note: this drops all other fields/extras
new_content.append({"type": "text", "text": block_dict["text"]})
# ReasoningContentBlock
# Ollama doesn't take reasoning back in
# In the future, could consider coercing into text as an option?
# e.g.:
# if block_dict["type"] == "reasoning":
# # Attempt to preserve content in text form
# new_content.append({"text": str(block_dict["reasoning"])})
# ImageContentBlock
if block_dict["type"] == "image":
# Already handled in _get_image_from_data_content_block
new_content.append(block_dict)
# TODO: AudioContentBlock once models support
# TODO: FileContentBlock once models support
# ToolCall -> ???
# if block_dict["type"] == "tool_call":
# function_call = {}
# new_content.append(function_call)
# ToolCallChunk -> ???
# elif block_dict["type"] == "tool_call_chunk":
# function_call = {}
# new_content.append(function_call)
# NonStandardContentBlock
if block_dict["type"] == "non_standard":
# Attempt to preserve content in text form
new_content.append(
{"type": "text", "text": str(block_dict.get("value", ""))}
)
return new_content