必须区分输入类型与算子版本:daft≥0.6.14用arkllmthinkingvision等多模态算子,否则仅支持单模态;输入需用url、base64或二进制格式,字段名与construct_args严格一致,且须指定model参数启用推理链。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在火山引擎上真正调用AI大模型的多模态功能,必须明确区分输入类型与算子版本,否则会因字段名错误或参数缺失直接返回空结果或400报错。
确认当前Daft版本并选择对应算子
登录火山引擎机器学习平台,在开发机终端执行 pip show daft 查看Daft版本号。若显示 0.6.14或更高版本,必须使用 ArkLLMThinkingVision 或 ArkLLMVisionUnderstanding 算子;若为 0.6.5或更低版本,则只能用旧版单模态接口,且不支持同时传入图片+文本+视频。
版本不匹配会导致 construct_args 中的 images/texts/videos 字段被完全忽略——模型根本收不到任何视觉数据,只当作纯文本问答处理。
构造合法的多模态输入结构
方法一:使用 URL 地址(推荐)
将图片/视频上传至 TOS 或 S3 存储桶,确保 URL 可公开访问或已配置预签名权限。URL 必须以 https://、http://、tos:// 或 s3:// 开头,其他协议(如 file://)会被拒绝。
方法二:Base64 编码(适合小图)
对 PNG/JPEG 图片做 Base64 编码后,字符串需以 data:image/png;base64, 或 data:image/jpeg;base64, 开头,缺一不可;否则算子解析失败,返回 invalid image format 错误。
方法三:二进制数据(仅限 Python SDK 调用)
读取本地文件时用 open("xxx.jpg", "rb").read() 获取 bytes 对象,不可用 str 或 utf-8 解码,否则触发 【binary data corrupted】 异常。
编写 Daft DataFrame 调用代码
第一步:准备输入列
创建包含 images、texts、videos 三列的 DataFrame,每列可为 string 或 list。例如:df = df.with_column("images", lit(["https://xxx.jpg"]))。
第二步:配置 construct_args
必须显式指定 "model" 参数,如 "Doubao-1.8-vision-pro";若省略,系统默认使用旧版基础模型,【不启用深度思考机制】,无法输出 reasoning_content。
第三步:调用 UDF
使用 las_udf(ArkLLMThinkingVision, construct_args={...})(images=col("images"), texts=col("texts")) 形式调用,注意字段名必须与 construct_args 中声明的输入列严格一致——大小写、下划线均不可错。
第四步:提取结果
输出为 struct 类型,需用 .llm_result 取最终回答,用 .reasoning_content 取思维链;若未设置 LAS_LLM_FINISH_REASON_CHECK=true,则 finish_reason 字段不存在。











