当前位置: 首页 > article >正文

当人人都能用 AI 写代码时,我为什么选择重回 Django?

这个代码的核心功能是基于输入词的长度动态选择反义词示例并调用大模型生成反义词体现了 “动态少样本提示Dynamic Few-Shot Prompting” 与 “上下文长度感知的示例选择” 的能力。from langchain.prompts import FewShotPromptTemplate, PromptTemplatefrom langchain.prompts.example_selector import LengthBasedExampleSelectorfrom langchain_core.output_parsers import StrOutputParserfrom langchain_openai import ChatOpenAIimport osfrom dotenv import load_dotenv# 定义反义词任务的示例数据集few-shot examples# 每个示例包含一个输入词input和对应的反义词outputexamples [{input: 开心, output: 伤心},{input: 高, output: 矮},{input: 精力充沛, output: 没精打采},{input: 粗, output: 细},]# 定义单个示例的格式模板# 使用 {input} 和 {output} 作为占位符用于后续填充具体值example_prompt PromptTemplate(input_variables[input, output], # 声明模板中使用的变量名templateInput: {input}\nOutput: {output}, # 示例的文本格式)# 创建一个基于长度的示例选择器LengthBasedExampleSelector# 作用根据输入提示的总长度动态选择最合适的示例数量避免超出模型上下文限制example_selector LengthBasedExampleSelector(examplesexamples, # 提供所有候选示例example_promptexample_prompt, # 用于格式化每个示例的模板max_length25, # 设定整个 prompt含前缀、示例、后缀的最大 token 长度此处为字符数近似# 注意LengthBasedExampleSelector 默认使用 len(text) 计算长度非精确 token 数适用于简单场景)# 构建动态少样本提示模板FewShotPromptTemplate# 它会根据输入内容的长度自动从 examples 中选择合适数量的示例插入到 prompt 中dynamic_prompt FewShotPromptTemplate(example_selectorexample_selector, # 使用上面定义的动态选择器而非固定示例列表example_promptexample_prompt, # 单个示例的格式prefix给出每个输入的反义词, # 提示的开头部分任务指令suffixInput: {adjective}\nOutput:, # 提示的结尾部分包含待预测的输入占位符input_variables[adjective], # 声明最终用户输入的变量名与 suffix 中的 {adjective} 对应)# 测试 1输入较短应选择多个示例 print(【测试1】输入较短选择多个示例)print(dynamic_prompt.format(adjectivebig))print(------------)# 测试 2输入很长应只选择少量或一个示例以控制总长度 long_string big and huge and massive and large and gigantic and tall and much much much much much bigger than everything elseprint(【测试2】输入很长仅选择一个示例)print(dynamic_prompt.format(adjectivelong_string))print(------------)# 测试 3动态添加新示例 # 向示例选择器中新增一个示例胖 - 瘦new_example {input: 胖, output: 瘦}dynamic_prompt.example_selector.add_example(new_example)print(【测试3】添加新示例后查询热情)print(dynamic_prompt.format(adjective热情))print(------------)# 配置并调用 DeepSeek 大语言模型 llm ChatOpenAI(api_keyos.getenv(DEEPSEEK_API_KEY),base_urlos.getenv(DEEP_URL), # Deepseek 的 API 基础地址modeldeepseek-v3:671b, # Deepseek 对话模型可选deepseek-chat-pro 等高级模型temperature0.7, # 温度参数0-1越低越稳定max_tokens1024 # 最大生成 tokens)# 创建字符串输出解析器用于将模型返回的 AIMessage 转换为纯文本output_parser StrOutputParser()# 构建处理链Chainprompt → LLM → output parser# 使用 LangChain 的管道操作符 | 连接各组件chain dynamic_prompt | llm | output_parser# 调用链传入输入变量 {adjective: 热情}# 注意chain.invoke() 内部已包含 llm 调用和 output_parser 解析无需再手动调用 output_parsermessage chain.invoke({adjective: 热情})# ?? 注意上一行 chain.invoke() 已经返回了字符串因为最后是 StrOutputParser# 所以下面这行是多余的甚至会导致错误因为 message 已是 str不能再次 invoke# result output_parser.invoke(message) # ? 错误message 是 str不是 AIMessage# 正确做法直接使用 message 作为结果result messageprint(###############)print(【模型输出】)print(result)输出结果【测试1】输入较短选择多个示例给出每个输入的反义词Input: 开心Output: 伤心Input: 高Output: 矮Input: 精力充沛Output: 没精打采Input: 粗Output: 细Input: bigOutput:------------【测试2】输入很长仅选择一个示例给出每个输入的反义词Input: 开心Output: 伤心Input: big and huge and massive and large and gigantic and tall and much much much much much bigger than everything elseOutput:------------【测试3】添加新示例后查询热情给出每个输入的反义词Input: 开心Output: 伤心Input: 高Output: 矮Input: 精力充沛Output: 没精打采Input: 粗Output: 细Input: 胖Output: 瘦Input: 热情Output:------------###############【模型输出】冷淡核心要点总结这段代码是基于 LangChain 框架对接 DeepSeek 大模型实现「动态少样本Few-Shot反义词生成」的完整案例核心解决「固定示例易超出模型上下文长度」的问题通过动态示例选择器适配不同长度输入同时结合 LangChain 链式调用简化模型调用流程先明确整体定位再拆解核心重点一、整体流程概览核心逻辑链代码遵循 LangChain 「示例准备 → 动态提示构建 → 模型调用 → 结果解析」的少样本学习经典流程整体可概括为1. 定义反义词任务的固定示例数据集为模型提供参考案例2. 配置基于长度的示例选择器根据输入文本长度动态筛选示例数量3. 构建动态少样本提示模板自动适配输入长度生成合规 Prompt4. 初始化 DeepSeek 模型客户端配置核心调用参数5. 构建「提示模板 → 大模型 → 输出解析」的链式调用流程6. 调用链条完成反义词生成并输出纯文本结果二、核心重点拆解必掌握1. 少样本提示Few-Shot Prompt核心组件这是实现「模型参考示例生成结果」的基础也是 LangChain 提示工程的核心用法- 示例数据集examples以键值对形式存储「输入-输出」示例为模型提供任务参考如开心→伤心- 单示例模板example_prompt定义单个示例的文本格式Input/Output 固定样式统一示例展示形式- 动态少样本模板FewShotPromptTemplate整合示例选择器、单示例模板、前缀/后缀生成最终发给模型的完整 Prompt- prefix任务指令给出每个输入的反义词明确模型要执行的任务- suffix待填充的用户输入占位符承接动态输入内容。2. 动态示例选择器LengthBasedExampleSelector这是代码的核心亮点解决「固定示例数量易超上下文长度」的问题核心作用根据输入文本的长度自动计算并选择合适数量的示例输入越长选的示例越少避免 Prompt 总长度超出模型上下文限制关键参数- examples候选示例列表- example_prompt示例格式化模板用于计算单示例长度- max_lengthPrompt 允许的最大长度此处为字符数近似值。3. LangChain 链式调用| 操作符简化多组件协作流程是 LangChain 核心设计理念- 链条构成dynamic_prompt生成 Prompt | llm调用模型 | output_parser解析结果- 核心优势无需手动分步调用先格式化 Prompt、再调用模型、最后解析结果一行代码完成全流程- 调用方式chain.invoke({adjective: 热情}) 传入输入变量直接返回解析后的纯文本结果。4. 输出解析器StrOutputParser解决「模型返回 AIMessage 对象→提取纯文本」的问题核心作用将 LangChain 模型返回的 AIMessage 类型含 content/metadata 等字段转换为纯字符串简化结果使用关键注意点链式调用中已包含解析步骤无需手动再次调用 output_parser.invoke()否则会报错。驹潦夭壹

相关文章:

当人人都能用 AI 写代码时,我为什么选择重回 Django?

这个代码的核心功能是:基于输入词的长度动态选择反义词示例,并调用大模型生成反义词,体现了 “动态少样本提示(Dynamic Few-Shot Prompting)” 与 “上下文长度感知的示例选择” 的能力。 from langchain.prompts impo…...

FontCenter解决方案:AutoCAD自动字体管理插件实现设计效率提升300%

FontCenter解决方案:AutoCAD自动字体管理插件实现设计效率提升300% 【免费下载链接】FontCenter AutoCAD自动管理字体插件 项目地址: https://gitcode.com/gh_mirrors/fo/FontCenter 在AutoCAD设计工作中,字体缺失导致的问号、方框显示异常是长期…...

Windows Cleaner实战指南:5步解决C盘爆红问题的高效系统优化方案

Windows Cleaner实战指南:5步解决C盘爆红问题的高效系统优化方案 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner Windows Cleaner是一款专为Windows系…...

5大行业场景深度解析:YOLO Face人脸检测技术如何重塑商业智能应用

5大行业场景深度解析:YOLO Face人脸检测技术如何重塑商业智能应用 【免费下载链接】yolo-face YOLO Face 🚀 in PyTorch 项目地址: https://gitcode.com/gh_mirrors/yo/yolo-face 在人工智能技术快速发展的今天,人脸检测已成为智能安防…...

期权定价模型:Black-Scholes方程的数值解法

**Black-Scholes方程的数值解法探析** 期权定价是金融工程的核心问题之一,而Black-Scholes模型因其简洁性和实用性成为经典工具。解析解仅适用于简单期权,复杂场景需依赖数值方法。本文将介绍Black-Scholes方程的数值解法,帮助读者理解其实现…...

别再被网站识别成机器人了!用Python的undetected_chromedriver+Selenium实现完美隐身爬虫

突破反爬封锁:Python隐身爬虫实战指南 当你在电商网站抓取商品信息时,是否经常遇到"请验证您不是机器人"的提示?传统的Selenium方案越来越容易被识别,而undetected_chromedriver正是为解决这一问题而生。这个基于Chromi…...

【AI工程化硬核警告】:PHP 9.0正式支持Fibers原生异步,但87.6%的AI机器人因未重写Promise调度器已悄然降级为同步阻塞

更多请点击: https://intelliparadigm.com 第一章:PHP 9.0异步演进与AI机器人性能断崖的真相 PHP 9.0 并非官方已发布的版本(截至 2024 年,PHP 官方最新稳定版为 8.3),但社区中广泛流传的“PHP 9.0”概念实…...

大语言模型偏见审计实战手册(R+causalml+fairness包工业级验证框架)

更多请点击: https://intelliparadigm.com 第一章:大语言模型偏见审计的R语言方法论基石 R语言凭借其强大的统计建模能力、可复现的分析管道(tidyverse 生态)以及丰富的文本分析包(如 quanteda、textdata、fairness&a…...

原创文档:基于深度学习的字体识别系统设计与实现

摘要:随着数字文档处理、文字图像分析和智能视觉技术的发展,基于深度学习的字体识别在文档分类、版式分析、数字出版、图像检索和人机交互等领域具有较高的应用价值。传统字体识别方法通常依赖人工设计特征,对复杂字形差异、书写风格变化和图…...

数据湖架构实践

数据湖架构实践:解锁企业数据价值的新范式 在数据爆炸的时代,企业如何高效存储、管理和分析海量异构数据成为关键挑战。数据湖架构应运而生,以其低成本、高扩展性和灵活性成为企业数据战略的核心。本文将深入探讨数据湖的实践路径&#xff0…...

5分钟终极指南:如何用DS4Windows让PS手柄在PC上完美运行

5分钟终极指南:如何用DS4Windows让PS手柄在PC上完美运行 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 还在为PlayStation手柄在Windows电脑上无法正常使用而烦恼吗&#xff…...

深入理解Linux内核机制

深入理解Linux内核机制 Linux内核作为操作系统的核心,其设计思想与实现机制一直是开发者与系统工程师关注的焦点。它不仅驱动着全球数以亿计的服务器、嵌入式设备和移动终端,更以其开源特性成为技术探索的沃土。深入理解Linux内核机制,不仅能…...

蓝牙开发避坑指南:手把手教你定位并解决6个最常见的连接断开问题(附错误码详解)

蓝牙开发避坑指南:手把手教你定位并解决6个最常见的连接断开问题(附错误码详解) 在物联网和嵌入式开发领域,蓝牙连接稳定性一直是开发者面临的棘手挑战。当你在调试过程中突然看到控制台弹出"Connection terminated with err…...

从‘蝶形图’到可运行代码:图解FFT递归过程与C++内存现场剖析

从蝶形图到可执行代码:FFT递归过程与C内存模型深度解析 第一次接触快速傅里叶变换(FFT)时,大多数人都能理解其数学原理——将信号分解为不同频率的正弦波叠加。但当真正动手实现时,面对递归调用、复数运算和内存管理这…...

【云端部署】2026年OpenClaw/Hermes Agent简易安装指南

【云端部署】2026年OpenClaw/Hermes Agent简易安装指南。OpenClaw和Hermes Agent是什么?OpenClaw和Hermes Agent怎么部署?如何部署OpenClaw/Hermes Agent?2026年还在为部署OpenClaw和Hermes Agent到处找教程踩坑吗?别再瞎折腾了&a…...

【详细攻略】2026年Hermes Agent/OpenClaw华为云1分钟保姆级安装流程

【详细攻略】2026年Hermes Agent/OpenClaw华为云1分钟保姆级安装流程。OpenClaw和Hermes Agent是什么?OpenClaw和Hermes Agent怎么部署?如何部署OpenClaw/Hermes Agent?2026年还在为部署OpenClaw和Hermes Agent到处找教程踩坑吗?别…...

Flowable流程表单数据怎么存?从.form文件到数据库的完整数据流转解析

Flowable外部表单数据存储机制深度解析:从.form文件到数据库的完整链路 当你在Flowable流程引擎中使用外部表单时,是否好奇过那些精心设计的表单字段最终去了哪里?本文将带你深入探索.form文件中的数据如何穿越层层关卡,最终安家落…...

5分钟终极指南:Steam成就管理器让你的游戏体验全面升级

5分钟终极指南:Steam成就管理器让你的游戏体验全面升级 【免费下载链接】SteamAchievementManager A manager for game achievements in Steam. 项目地址: https://gitcode.com/gh_mirrors/st/SteamAchievementManager 还在为Steam游戏中那些难以完成的成就而…...

别再折腾了!Windows 11下STM32开发环境一站式搭建指南(MDK5.38 + DAP/ST-Link + CH340)

Windows 11下零痛感STM32开发环境全栈配置手册 刚拿到STM32开发板的新手开发者,往往会在环境搭建阶段经历各种"玄学问题":MDK版本兼容性报错、仿真器驱动冲突、串口识别异常...这些看似简单的准备工作,实际可能消耗数天时间。本文将…...

第105篇:实战:构建一个AI智能客服中台——打通全渠道,降本增效的秘诀(项目实战)

文章目录项目背景技术选型架构设计核心实现1. 混合检索式知识库的实现2. 基于Rasa的、可对接业务API的对话流踩坑记录效果对比项目背景 在上一家公司,我们团队负责的电商业务线,客服压力巨大。高峰期,用户咨询从App、小程序、官网、电话、社…...

微信机器人终极指南:5分钟搭建智能助手,解放你的双手

微信机器人终极指南:5分钟搭建智能助手,解放你的双手 【免费下载链接】WeChatFerry 微信机器人,可接入DeepSeek、Gemini、ChatGPT、ChatGLM、讯飞星火、Tigerbot等大模型。微信 hook WeChat Robot Hook. 项目地址: https://gitcode.com/Git…...

iOS开发 实习产出(给我自己看的 笔记而已)

app总览这个 app 是一个通过多设备协同进行 AR 数据采集 / 录制 / 上传的 iOS 应用,主界面由 4 个一级 Tab 组成,背后由一组领域模块支撑。一、主界面 4 个板块(一级 Tab)enum Tab {case prepare, record, upload, profile}Tab入口…...

CloudCompare 2025保姆级避坑指南:10个新手最常踩的雷区与高效解决路径

CloudCompare 2025保姆级避坑指南:10个新手最常踩的雷区与高效解决路径 第一次打开CloudCompare时,面对密密麻麻的工具栏和复杂的点云数据,很多新手会感到手足无措。作为一款功能强大的开源点云处理软件,CloudCompare在三维建模、…...

别再只会用@PreAuthorize了!手把手教你用SpringBoot AOP+自定义注解+SpEL打造更灵活的权限控制

超越PreAuthorize:用SpringBoot AOPSpEL构建动态权限控制体系 在后台管理系统开发中,权限控制是保障业务安全的核心环节。虽然Spring Security提供的PreAuthorize注解能够满足基础需求,但面对"仅工作日可访问"、"只能操作自己…...

TVA在显示面板制造与检测中的实践与挑战(4)

重磅预告:本专栏将独家连载新书《AI视觉技术:从入门到进阶》精华内容。本书是《AI视觉技术:从进阶到专家》的权威前导篇,特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。Bohan师从美国三院院士、“AI教母”…...

年薪百万不是梦!AI大模型十大高薪岗位全解析!AI大模型时代

在人工智能大模型的推动下,职场格局正在发生翻天覆地的变化。AI大模型不仅在技术领域引发革命,也为相关岗位的从业者带来了前所未有的薪资待遇。以下是AI大模型领域的热门岗位薪资盘点,带你详细了解这些高薪职位的职责要求和发展前景。1. AI系…...

告别盲调!手把手教你用ETAS ISOLAR配置AUTOSAR XCP模块(附A2L文件生成避坑指南)

告别盲调!手把手教你用ETAS ISOLAR配置AUTOSAR XCP模块(附A2L文件生成避坑指南) 在汽车电子控制单元(ECU)开发中,XCP协议作为测量与标定的黄金标准,其重要性不言而喻。但对于许多刚接触ETAS ISO…...

大模型算法工程师:AI黄金赛道!高薪+风口+大厂争抢,速来围观!

大模型算法工程师,是具备扎实算法基础,深度理解Transformer、预训练与微调等大模型核心技术,负责模型训练、优化、部署与迭代的技术核心岗位。当下大模型赛道持续爆发,企业对能落地的算法人才需求井喷,大模型算法工程师…...

ARM MMU-401调试寄存器与TLB访问机制详解

1. ARM MMU-401调试寄存器架构解析在ARM处理器架构中,内存管理单元(MMU)负责虚拟地址到物理地址的转换工作。MMU-401作为ARM CoreLink系列的重要组件,其调试寄存器设计提供了独特的TLB(Translation Lookaside Buffer)访问机制,这对系统开发人…...

YimMenu:GTA5最强防护与增强工具完整指南

YimMenu:GTA5最强防护与增强工具完整指南 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu Yim…...