mirror of
https://github.com/langchain-ai/langchain.git
synced 2026-10-05 09:25:14 +03:00
fix(fireworks): declare native PDF inputs unsupported (#40814)
Co-authored-by: Mason Daugherty <mdrxy@users.noreply.github.com> Co-authored-by: open-swe[bot] <open-swe@users.noreply.github.com>
This commit is contained in:
3 files changed
+90
No files matched your search
@@ -38,6 +38,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/models/deepseek-v4-flash-vision-exp": {
|
||||
"name": "DeepSeek V4 Flash Vision Exp",
|
||||
@@ -61,6 +63,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/models/deepseek-v4-pro": {
|
||||
"name": "DeepSeek V4 Pro",
|
||||
@@ -84,6 +88,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
"reasoning_effort_levels": [
|
||||
"none",
|
||||
"low",
|
||||
@@ -116,6 +122,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/models/deepseek-v4p1-flash": {
|
||||
"name": "DeepSeek V4.1 Flash",
|
||||
@@ -138,6 +146,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/models/ember-1": {
|
||||
"name": "Ember-1",
|
||||
@@ -158,9 +168,13 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"tool_calling": True,
|
||||
"attachment": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/models/glm-5p1": {
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
"reasoning_effort_levels": [
|
||||
"none",
|
||||
"high",
|
||||
@@ -188,6 +202,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
"reasoning_effort_levels": [
|
||||
"none",
|
||||
"high",
|
||||
@@ -216,6 +232,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/models/glm-5p3-flash": {
|
||||
"name": "GLM 5.3 Flash",
|
||||
@@ -238,6 +256,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/models/gpt-oss-120b": {
|
||||
"name": "GPT OSS 120B",
|
||||
@@ -259,6 +279,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/models/inkling": {
|
||||
"name": "Inkling",
|
||||
@@ -280,6 +302,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/models/kimi-k2p6": {
|
||||
"name": "Kimi K2.6",
|
||||
@@ -302,6 +326,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
"reasoning_effort_levels": [
|
||||
"low",
|
||||
"medium",
|
||||
@@ -329,6 +355,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
"reasoning_effort_levels": [
|
||||
"low",
|
||||
"medium",
|
||||
@@ -356,6 +384,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/models/minimax-m2p7": {
|
||||
"name": "MiniMax-M2.7",
|
||||
@@ -378,6 +408,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/models/minimax-m3": {
|
||||
"name": "MiniMax-M3",
|
||||
@@ -399,6 +431,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/models/muse-glimmer-30b": {
|
||||
"name": "Muse Glimmer 30B",
|
||||
@@ -422,6 +456,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/models/nemotron-3-ultra-nvfp4": {
|
||||
"name": "Nemotron 3 Ultra 550B A55B",
|
||||
@@ -443,6 +479,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b": {
|
||||
"name": "Nemotron 3.5 Lightning 30B A3B",
|
||||
@@ -465,6 +503,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/models/qwen3p7-plus": {
|
||||
"name": "Qwen 3.7 Plus",
|
||||
@@ -486,6 +526,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/models/qwen3p8-2p4t-a95b": {
|
||||
"name": "Qwen3.8 2.4T A95B",
|
||||
@@ -508,6 +550,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/models/qwen3p8-max": {
|
||||
"name": "Qwen3.8 Max",
|
||||
@@ -529,6 +573,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/routers/deepseek-flash-latest": {
|
||||
"name": "DeepSeek Flash Latest",
|
||||
@@ -551,6 +597,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/routers/deepseek-pro-latest": {
|
||||
"name": "DeepSeek Pro Latest",
|
||||
@@ -573,9 +621,13 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/routers/glm-5p1-fast": {
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
"reasoning_effort_levels": [
|
||||
"none",
|
||||
"high",
|
||||
@@ -602,6 +654,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
"reasoning_effort_levels": [
|
||||
"none",
|
||||
"high",
|
||||
@@ -630,6 +684,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/routers/glm-fast-latest": {
|
||||
"name": "GLM 5.3 Fast (Latest)",
|
||||
@@ -652,6 +708,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/routers/glm-flash-latest": {
|
||||
"name": "GLM Flash Latest (GLM 5.3 Flash)",
|
||||
@@ -674,6 +732,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/routers/glm-latest": {
|
||||
"name": "GLM Latest",
|
||||
@@ -696,6 +756,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/routers/kimi-fast-latest": {
|
||||
"name": "Kimi Fast Latest",
|
||||
@@ -718,9 +780,13 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/routers/kimi-k2p6-fast": {
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
"reasoning_effort_levels": [
|
||||
"low",
|
||||
"medium",
|
||||
@@ -729,6 +795,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
},
|
||||
"accounts/fireworks/routers/kimi-k2p6-turbo": {
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
"reasoning_effort_levels": [
|
||||
"low",
|
||||
"medium",
|
||||
@@ -737,6 +805,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
},
|
||||
"accounts/fireworks/routers/kimi-k2p7-code-fast": {
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
"reasoning_effort_levels": [
|
||||
"low",
|
||||
"medium",
|
||||
@@ -764,6 +834,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/routers/kimi-latest": {
|
||||
"name": "Kimi Latest",
|
||||
@@ -786,6 +858,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": True,
|
||||
"temperature": False,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/routers/minimax-latest": {
|
||||
"name": "MiniMax Latest",
|
||||
@@ -807,6 +881,8 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": False,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
"accounts/fireworks/routers/qwen-max-latest": {
|
||||
"name": "Qwen Max Latest (Qwen3.8 Max)",
|
||||
@@ -828,5 +904,7 @@ _PROFILES: dict[str, dict[str, Any]] = {
|
||||
"attachment": True,
|
||||
"temperature": True,
|
||||
"tool_call_streaming": True,
|
||||
"pdf_inputs": False,
|
||||
"pdf_tool_message": False,
|
||||
},
|
||||
}
|
||||
@@ -2,6 +2,8 @@ provider = "fireworks-ai"
|
||||
|
||||
[overrides]
|
||||
tool_call_streaming = true
|
||||
pdf_inputs = false
|
||||
pdf_tool_message = false
|
||||
|
||||
[overrides."accounts/fireworks/models/deepseek-v4-pro"]
|
||||
reasoning_effort_levels = ["none", "low", "medium", "high", "xhigh", "max"]
|
||||
|
||||
@@ -57,6 +57,7 @@ from langchain_fireworks.chat_models import (
|
||||
_update_token_usage,
|
||||
_usage_to_metadata,
|
||||
)
|
||||
from langchain_fireworks.data._profiles import _PROFILES
|
||||
|
||||
MODEL_NAME = "accounts/fireworks/models/test-model"
|
||||
|
||||
@@ -105,6 +106,15 @@ def test_fireworks_model_param() -> None:
|
||||
assert llm.model == "foo"
|
||||
|
||||
|
||||
@pytest.mark.parametrize("model_name", _PROFILES)
|
||||
def test_model_profile_rejects_native_pdf_input(model_name: str) -> None:
|
||||
profile = _make_model(model=model_name).profile
|
||||
|
||||
assert profile is not None
|
||||
assert profile["pdf_inputs"] is False
|
||||
assert profile["pdf_tool_message"] is False
|
||||
|
||||
|
||||
def test_convert_dict_to_message_with_reasoning_content() -> None:
|
||||
"""Test that reasoning_content is correctly extracted from API response."""
|
||||
response_dict = {
|
||||
|
||||
Reference in new issue
Block a user