news 2026/3/13 18:53:30

pydantic_ai 意图识别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
pydantic_ai 意图识别

code

from enum import Enum from dotenv import load_dotenv from pydantic import BaseModel class IntentEnum(str, Enum): eat = "吃饭" action = "运动" UNKNOWN = "UNKNOWN" class IntentResult(BaseModel): intent: IntentEnum confidence: float | None = None load_dotenv() from pydantic_ai import Agent intent_agent = Agent( 'deepseek:deepseek-chat', output_type=IntentResult, system_prompt=""" 根据用户输入判断其意图。只返回意图标签和(可选)置信度。 用户输入可能是自然语言查询。 """, ) def classify_intent(text: str): result = intent_agent.run_sync(text) return result.output.intent, result.output.confidence # 示例输入 texts = [ "明天去上海午饭怎么办?", "你喜欢打篮球吗", "我想听个笑话" ] for text in texts: intent, conf = classify_intent(text) print(f"输入: {text}") print(f"意图: {intent}, 置信度: {conf}") print("----")

输出

输入: 明天去上海午饭怎么办? 意图: IntentEnum.eat, 置信度: 0.8 ---- 输入: 你喜欢打篮球吗 意图: IntentEnum.UNKNOWN, 置信度: None ---- 输入: 我想听个笑话 意图: IntentEnum.UNKNOWN, 置信度: 0.8 ----

结果枚举限制

from enum import Enum from dotenv import load_dotenv from pydantic import BaseModel class MLType(str, Enum): regression = "回归" classifier = "分类" UNKNOWN = "UNKNOWN" class IntentResult(BaseModel): data_location: str ml_type_name: MLType data_source_limit: float | None = None load_dotenv() from pydantic_ai import Agent intent_agent = Agent( 'deepseek:deepseek-chat', output_type=IntentResult, system_prompt=""" """, ) def classify_intent(text: str): result = intent_agent.run_sync(text) return result.output.intent, result.output.confidence # 示例输入 texts = [ "对 /data/1.txt 进行回归分析,不需要全量,只提取125条即可", "我想听个笑话" ] for text in texts: out = intent_agent.run_sync(user_prompt=text).output print(f"输入: {text}") print(f"数据位置:{out.data_location},模型类型:{out.ml_type_name},数据源限制:{out.data_source_limit}") print("----") """ 输出结果: 输入: 对 /data/1.txt 进行回归分析,不需要全量,只提取125条即可 数据位置:/data/1.txt,模型类型:MLType.regression,数据源限制:125.0 ---- 输入: 我想听个笑话 数据位置:用户请求讲笑话,模型类型:MLType.UNKNOWN,数据源限制:None ---- """

system pt

from enum import Enum from dotenv import load_dotenv from pydantic import BaseModel, Field class MLType(str, Enum): regression = "回归" classifier = "分类" UNKNOWN = "UNKNOWN" class IntentResult(BaseModel): data_location: str = Field(..., description="数据路径") ml_type_name: MLType = Field(..., description="希望用来机器学习的模型类别") data_source_limit: float | None = Field(..., description="探索性数据分析,从全量中抽样的数据行数") load_dotenv() from pydantic_ai import Agent intent_agent = Agent( 'deepseek:deepseek-chat', output_type=IntentResult, system_prompt=""" 有些护具无法意图识别,则返回None填充即可 """, ) def classify_intent(text: str): result = intent_agent.run_sync(text) return result.output.intent, result.output.confidence # 示例输入 texts = [ "对 /data/1.txt 进行回归分析,不需要全量,只提取125条即可", "我想听个笑话" ] for text in texts: out = intent_agent.run_sync(user_prompt=text).output print(f"输入: {text}") print(f"数据位置:{out.data_location},模型类型:{out.ml_type_name},数据源限制:{out.data_source_limit}") print("----") """ 输出结果: 输入: 对 /data/1.txt 进行回归分析,不需要全量,只提取125条即可 数据位置:/data/1.txt,模型类型:MLType.regression,数据源限制:125.0 ---- 输入: 我想听个笑话 数据位置:用户请求讲笑话,模型类型:MLType.UNKNOWN,数据源限制:None ---- """
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/21 3:56:38

新能源电池企业如何通过海外社媒Facebook+TikTok整合营销开拓全球B2B市场

在全球能源转型的浪潮下,中国新能源制造企业正积极通过数字化渠道连接全球采购商。近期,云百邦与一家拥有深厚行业积淀的深圳新能源电池企业达成合作,通过整合Facebook与TikTok的海外推广策略,共同探索B2B数字营销的高效路径。客户…

作者头像 李华
网站建设 2026/3/13 7:30:56

Ollama本地大模型部署实战教程:从安装到可视化界面完整指南

Ollama是一款开源的本地大语言模型运行框架,支持多种操作系统和Docker部署,可在本地运行各种LLM模型,确保数据隐私安全。文章详细介绍了安装方法、硬件要求、模型下载与运行、API调用及常见问题解决方案,并展示了如何集成可视化工…

作者头像 李华
网站建设 2026/3/11 10:08:08

列表渲染(v-for)

1.用of替代in2.直接使用范围值3.template4.通过key管理状态Vue 默认按照“就地更新”的策略来更新通过 v-for 渲染的元素列表。当数据项的顺序改变时,Vue 不会随之移动 DOM 元素的顺序,而是就地更新每个元素,确保它们在原本指定的索引位置上渲…

作者头像 李华
网站建设 2026/3/2 8:11:38

扭蛋机小程序:线上扭蛋机模式发展新形势[特殊字符]

扭蛋机小程序:线上扭蛋机模式发展新形势💰随着互联网的发展,扭蛋机在线上也迎来了发展机遇,扭蛋机与互联网进行融合,通过线上扭蛋机小程序让消费者在手机上进行扭蛋,为消费者带来全新的线上体验。&#x1f…

作者头像 李华
网站建设 2026/3/9 17:14:52

49、Bash编程:模式匹配、命令操作与示例代码详解

Bash编程:模式匹配、命令操作与示例代码详解 1. extglob扩展模式匹配运算符 在使用 shopt -s extglob 时,以下运算符会生效。匹配默认区分大小写,但可以使用 shopt -s nocasematch (bash 3.1+)来改变这一特性,该选项会影响 case 和 [[ 命令。 分组 含义 @( …

作者头像 李华