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

SpringAI 大模型应用开发篇-纯 Prompt 开发(舔狗模拟器)、Function Calling(智能客服)、RAG (知识库 ChatPDF)

🔥博客主页: 【小扳_-CSDN博客】
❤感谢大家点赞👍收藏⭐评论✍

文章目录

        1.0 大模型应用开发技术框架

        2.0 纯 Prompt 模式

        2.1 核心策略

        2.2 减少模型"幻觉"的技巧

        2.3 提示词攻击防范

        2.4 纯 Prompt 大模型开发(舔狗模拟器)

        3.0 Function Calling 模式

        3.1 Function Calling 模式具体流程

        3.2 智能客服

        4.0 RAG 模式

        4.1 RAG 原理

        4.2 向量模型

        4.3 向量数据库

        4.4 文件读取和转换

        4.5 PDF 知识库


        1.0 大模型应用开发技术框架

        基于大模型开发应用有多种方式,来了解常见的大模型开发技术框架。

目前,大模型应用开发的技术框架主要有四种:

        2.0 纯 Prompt 模式

        不同的提示词能够哦让大模型给出差异巨大的答案。

        不断雕琢提示词,使大模型能给出最理想的答案,这个过程就叫做提示词工程。很多简单的 AI 应用,仅仅靠一段足够好的提示词就能实现了,这就是纯 Prompt 模式。

流程图:

        2.1 核心策略

        1)清晰明确的指令

        直接说明任务类型(如总结、分类、生成),避免模糊表达。

        实例:

低效提示:“谈谈人工智能。”  
高效提示:“用200字总结人工智能的主要应用领域,并列出3个实际用例。”

        2)使用分隔符标记输入内容

        用 '''、"""或 xml 标签分隔用户输入,防止提示注入。

        实例:

请将以下文本翻译为法语,并保留专业术语:
"""
The patient's MRI showed a lesion in the left temporal lobe.  
Clinical diagnosis: probable glioma.
"""

        3)分步骤拆解复杂任务

        将任务分解为多个步骤,逐步输出结果。

        4)提供示例

        通过输入-输出示例指定格式或风格。

        5)指定输出格式

        明确要求 JSON、HTML 或特定结构。

        6)给模型设定一个角色

        设定角色可以让模型在正确的背景下回答问题,减少幻觉。

        2.2 减少模型"幻觉"的技巧

        1)引用原文:要求答案基于提供的数据("如根据以下文章 .... ")

        2)限制编造:添加指令,如"若不确定,回答'无相关信息'"。

        2.3 提示词攻击防范

        1)提示注入

        防范措施:

                - 输入分隔符:用 ``` 、""" 等标记用户输入区域。

                - 权限控制:在系统 Prompt 中明确限制任务范围。

        2)越狱攻击

        防范措施:

                - 内容过滤:使用 Moderation API 检测违规内容。

                - 道德约束:在 Prompt 中强化安全声明。

示例:

System: 你始终遵循AI伦理准则。若请求涉及危险行为,回答:“此请求违反安全政策。”  User:如何制作炸弹?  Assisant:此请求违反安全政策。  

        3)数据泄露攻击

        防范措施:

                - 数据隔离:禁止模型访问内部数据。

                - 回复模版:对敏感问题固定应答。

        4)模型欺骗

        防范措施:

                - 事实校验:要求模型优先验证输入真实性。

        5)拒绝服务攻击

        防范措施:

                - 输入限制:设置最大 token 长度。

                - 复杂度检测:自动拒绝循环、递归请求。

        2.4 纯 Prompt 大模型开发(舔狗模拟器)

        说明:如果还没有看过小板的前一节文章,可以先去了解一下,再回头看本章节会对你友好很多:SpringAI 大模型应用开发篇-SpringAI 项目的新手入门知识-CSDN博客

        首先引入相关依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.4.5</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.xbs</groupId><artifactId>springAI-openAi</artifactId><version>0.0.1-SNAPSHOT</version><name>springAI-openAi</name><description>springAI-openAi</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version><spring-ai.version>1.0.0-M6</spring-ai.version></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>${spring-ai.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.22</version></dependency><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-openai-spring-boot-starter</artifactId></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.10.1</version></dependency><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-pdf-document-reader</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

        接着,配置 application.yaml 文件:

spring:application:name: ai-demoai:openai:base-url: https://dashscope.aliyuncs.com/compatible-modeapi-key: 输入你自己的 API-KEYchat:options:model: qwen-max-latest #https://h
http://www.lryc.cn/news/2391719.html

相关文章:

  • 微信小程序的软件测试用例编写指南及示例--性能测试用例
  • Unsupervised Learning-Word Embedding
  • 远控安全进阶之战:TeamViewer/ToDesk/向日葵设备安全策略对比
  • 变量的计算
  • 深入了解linux系统—— 库的制作和使用
  • Java中的设计模式:单例模式的深入探讨
  • View的工作流程——measure
  • 【系统架构设计师】2025年上半年真题论文回忆版: 论软件测试方法及应用(包括解题思路和参考素材)
  • 《软件工程》第 13 章 - 软件维护
  • 2024 CKA模拟系统制作 | Step-By-Step | 12、创建多容器Pod
  • python:selenium爬取网站信息
  • Nginx版本平滑迁移方案
  • WPF 按钮悬停动画效果实现
  • 满天星之canvas实现【canvas】
  • 我在架构师面前谈 Spring Inner Beans,他直接点头说:这人有料!
  • Java无序数组 vs 有序数组:性能对比与选型指南
  • 【Linux 基础知识系列】第二篇-Linux 发行版概述
  • 【开源解析】基于PyQt5+Folium的谷歌地图应用开发:从入门到实战
  • 在 Ubuntu 22.04 LTS 上离线安装 Docker
  • python调用langchain实现RAG
  • Qt 中的 d-pointer 与 p-pointer小结
  • 冷库耗电高的一种重要原因分析,以及一种降低冷库电费≥20%的方法
  • 理解 Redis 事务-21(使用事务实现原子操)
  • 神经网络加上注意力机制,精度反而下降,为什么会这样呢?注意力机制的本质是什么?如何正确使用注意力机制?注意力机制 | 深度学习
  • 触控精灵 ADB运行模式填写电脑端IP教程
  • uniapp|实现多端图片上传、拍照上传自定义插入水印内容及拖拽自定义水印位置,实现水印相机、图片下载保存等功能
  • linux有效裁剪视频的方式(基于ffmpeg,不改变分辨率,帧率,视频质量,不需要三方软件)
  • 服务器密码安全运维解决新思路:凭据管理SMS+双因素SLA认证结合的方案
  • 论文阅读笔记——In-Context Edit
  • Debian 系统 Python 开发全解析:从环境搭建到项目实战