ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

MLflow Mistral 集成指南:用 mlflow.mistral.autolog() 自动追踪 Mistral AI 调用

MLflow Mistral 集成指南:用 mlflow.mistral.autolog() 自动追踪 Mistral AI 调用 MLflow Mistral 集成指南用 mlflow.mistral.autolog() 自动追踪 Mistral AI 调用【免费下载链接】mlflowThe open source AI engineering platform for agents, LLMs, and ML models. MLflow enables teams of all sizes to debug, evaluate, monitor, and optimize production-quality AI applications while controlling costs and managing access to models and data.项目地址: https://gitcode.com/GitHub_Trending/ml/mlflowmlflow.mistral是 MLflow 针对 Mistral AI 官方 Python SDK 的自动追踪auto-tracing集成模块属于 MLflow LLM Tracing 体系的一部分。开启后你的 Mistral 对话补全调用会被自动记录为 Trace/Span无需改动业务代码即可获得提示词、响应、模型名、Token 用量、函数调用Function Calling与异常等完整可观测信息。读完本文你将掌握mlflow.mistral.autolog()的全部参数语义、适用 API 边界、底层实现原理并能直接落地到自己的 Mistral 应用中。一、模块概览flavor 与入口mlflow.mistral模块在仓库中的源码位于 mlflow/mistral共三个文件__init__.py对外入口、autolog.py自动埋点核心、chat.py工具定义转换。它注册的 flavor 名称为mistral见 __init__.py整个模块的对外能力都通过唯一的入口函数mlflow.mistral.autolog()暴露。从模块结构可以推断该集成遵循 MLflow 统一的autologging_integration装饰器规范__init__.py并借助safe_patch对 Mistral SDK 的Chat类方法做无损补丁——补丁不会破坏原方法的返回值与行为调用方无感。二、API 参考mlflow.mistral.autolog()该 API 的正式定义位于 mlflow/mistral/__init__.py也是本模块 API 文档页mlflow.mistral的核心成员。mlflow.mistral.autolog(log_tracesTrue, disableFalse, silentFalse)作用启用或禁用Mistral AI 到 MLflow 的自动日志记录。启用后Mistral SDK 的文本生成调用会被自动追踪。参数说明参数类型默认值含义log_tracesboolTrue为 Mistral 模型记录 Trace设为False时推理期间不采集任何 TracedisableboolFalse设为True时禁用 Mistral AI 自动日志记录silentboolFalse设为True时抑制 MLflow 在 autolog 期间的全部事件日志与告警False时正常输出关键限制重要根据 __init__.py 的 docstring本集成仅支持文本生成 API 的同步调用chat.complete以及异步调用chat.complete_async流式Streaming调用不会被记录。这与官方集成文档 Tracing Mistral 中的支持矩阵一致Chat ✅、Function Calling ✅、Streaming –不支持、Async ✅异步支持自 MLflow 3.5.0 起加入、Image / Embeddings / Agents 暂不支持。三、快速上手三步开启自动追踪1. 安装依赖pip install mlflow mistralai2. 调用 autolog 并正常使用 SDK参考仓库示例 examples/mistral/tracing.py在创建 Mistral 客户端之前开启自动追踪import os from mistralai import Mistral import mlflow # 开启 Mistral AI 自动追踪需在调用前执行 mlflow.mistral.autolog() # 配置 tracking URI 与实验可选便于 UI 查看 mlflow.set_tracking_uri(http://localhost:5000) mlflow.set_experiment(Mistral) # 配置 API Key client Mistral(api_keyos.environ[MISTRAL_API_KEY]) # 正常调用 chat complete chat_response client.chat.complete( modelmistral-small-latest, messages[ { role: user, content: Who is the best French painter? Answer in one short sentence., }, ], ) print(chat_response.choices[0].message)3. 在 MLflow UI 中查看浏览器访问 MLflow UI如http://localhost:5000即可看到 Mistral API 调用自动生成的 Trace。四、自动捕获的内容开启 autolog 后MLflow 会自动记录每次 Mistral 调用的以下信息依据 mistral.mdx 官方集成文档与 autolog.py 实现提示词Prompts与补全响应Completion Responses延迟Latency模型名称Model NameToken 用量输入 Token、输出 Token、总 Tokeninput/output/total tokens附加元数据如用户指定的temperature、max_tokens等响应中返回的函数调用Function Calling调用抛出的任何异常这些信息被写入 Span 的结构化属性中。从源码实现看autolog.py 创建的 Span 具有以下特征Span 字段取值说明nameChat.complete/Chat.complete_async由实例类名.方法名拼成span_typeCHAT_MODEL对话模型类 SpanMESSAGE_FORMAT属性mistral标识消息格式来源CHAT_USAGE属性{input_tokens, output_tokens, total_tokens}从响应usage解析CHAT_TOOLS属性OpenAI 兼容的工具定义列表请求带tools时写入outputs原始ChatCompletionResponse保留原始对象以兼容旧接口Token 用量与成本MLflow 会自动跟踪 Mistral 调用的 Token 用量与成本每次 LLM 调用的 Token 用量记录在 Trace/Span 中聚合后的成本与耗时趋势显示在内置 Dashboard 中。测试用例 test_mistral_autolog.py 验证了 Token 用量被归一化为input_tokens/output_tokens/total_tokens三个字段并在非 tracing-SDK-only 环境下按模型单价计算出llm_cost如示例中 10 个输入 Token、18 个输出 Token 得到input_cost10.0、output_cost36.0、total_cost46.0。五、异步调用支持自 MLflow 3.5.0 起chat.complete_async同样会被自动追踪。底层由async_patched_class_call配合异步版本的TracingSession__aenter__/__aexit__实现见 autolog.py 与 autolog.py。import asyncio import os from mistralai import Mistral import mlflow mlflow.mistral.autolog() client Mistral(api_keyos.environ[MISTRAL_API_KEY]) async def main(): response await client.chat.complete_async( modelmistral-small-latest, messages[{role: user, content: Hello!}], ) return response asyncio.run(main())异步路径生成的 Span 名称为Chat.complete_async其余捕获字段与同步调用一致。六、函数调用Function Calling / 工具的支持请求中带有tools时Mistral 的工具定义会被转换为 MLflow 标准OpenAI 兼容格式写入 Span 属性供下游评估与调试使用。转换逻辑由 chat.py 中的convert_tool_to_mlflow_chat_tool完成def convert_tool_to_mlflow_chat_tool(tool: dict[str, Any]) - ChatTool: function tool[function] return ChatTool( typefunction, functionFunctionToolDefinition( namefunction[name], descriptionfunction.get(description), parametersfunction[parameters], ), )即读取 Mistral 工具定义中的function.name、function.description、function.parameters包装为mlflow.types.chat.ChatTool。转换发生在 autolog.py若转换失败仅记录 debug 日志而不影响主流程。测试用例 test_mistral_autolog.py 验证了带工具请求的 Span 中CHAT_TOOLS属性与输入工具定义一一对应。七、底层实现原理safe_patch 与 TracingSession1. 埋点方式autolog()内部通过safe_patch对Chat类进行无损补丁__init__.pymistralai 2.0时从mistralai.client.chat.Chat导入否则从mistralai.chat.Chat导入向后兼容同步complete被补丁为patched_class_call异步complete_async被补丁为async_patched_class_call。2. TracingSession 上下文管理器同步与异步补丁都依赖TracingSession这个统一的上下文管理器autolog.py其核心流程为入口用signature.bind_partial构造完整入参剔除self若config.log_traces为真则创建CHAT_MODEL类型 Span将消息格式标记为mistral并把 Span 挂载到当前上下文set_span_in_context使单次 SDK 调用内部可产生子 Span执行调用原始方法original(self, *args, **kwargs)同步await前为original(...)异步为await original(...)出口先detach_span_from_context避免上下文泄漏若发生异常则span.record_exception随后set_span_model_attribute写入模型相关属性解析响应中的usage写入CHAT_USAGE最后span.end(outputsself.output)结束 Span 并保留原始返回值对象。从_parse_usageautolog.py可以看到Token 用量只采集prompt_tokens、completion_tokens、total_tokens三个字段并映射为 MLflow 统一的input_tokens、output_tokens、total_tokens键名。八、关闭自动追踪自动追踪可全局关闭mlflow.mistral.autolog(disableTrue) # 或关闭所有 flavor 的 autolog mlflow.autolog(disableTrue)测试 test_mistral_autolog.py 验证了disableTrue后再次调用chat.complete不会产生新的 Trace。九、测试验证与进一步探索该集成的行为由 tests/mistral/test_mistral_autolog.py 覆盖共验证三类场景test_chat_complete_autolog同步调用生成单个名为Chat.complete的CHAT_MODELSpan状态为OK输入输出与真实请求响应一致Token 用量与成本计算正确test_chat_complete_autolog_tool_calling带工具请求的 Span 属性CHAT_TOOLS与输入工具定义一致test_chat_complete_async_autolog异步调用生成Chat.complete_asyncSpan捕获字段与同步路径对齐。如果你希望进一步了解 MLflow Tracing 的通用能力Token 用量与成本追踪的编程式访问、Span 属性规范等可继续阅读 Tracing Mistral 集成文档、docs/docs/genai 目录下的追踪相关文档以及本模块的源码 mlflow/mistral/autolog.py 与 mlflow/mistral/chat.py。【免费下载链接】mlflowThe open source AI engineering platform for agents, LLMs, and ML models. MLflow enables teams of all sizes to debug, evaluate, monitor, and optimize production-quality AI applications while controlling costs and managing access to models and data.项目地址: https://gitcode.com/GitHub_Trending/ml/mlflow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表