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

网站管理与维护方案开个人网站如何赚钱

网站管理与维护方案,开个人网站如何赚钱,找建网站模板,小学学校网站模板免费下载一、技术背景与需求分析 我们日常在使用AI的时候一定都上传过文件,AI会根据用户上传的文件内容结合用户的请求进行分析,给出用户解答。但是这是怎么实现的呢?在我们开发自己的大模型应用时肯定是不可避免的要思考这个问题,今天我会…

一、技术背景与需求分析

        我们日常在使用AI的时候一定都上传过文件,AI会根据用户上传的文件内容结合用户的请求进行分析,给出用户解答。但是这是怎么实现的呢?在我们开发自己的大模型应用时肯定是不可避免的要思考这个问题,今天我会将从文件上传开始到大模型给出分析的整个流程进行讲解

二、核心技术实现路径

        在这里我先将整体的流程说一下:

前端文件上传 → 服务端接收文件 → 解析文件 → 生成唯一Id → 将文件存储(id:content)|                                     |—————————————————存储id←———————————————↓
用户发送请求 → 用户信息+文件id → 服务端接收请求 → 根据id获取文件内容 → 拼接用户消息和文件内容↓大模型分析↓返回响应

1.文件上传于预处理

        文件上传的前端部分我不再进行讲解,但是需要说明的是,在前端需要加上对文件的约束和校验,比如文件大小、文件格式等。

        后端的编写上首先需要准备一个接口去接收文件。

在这个接口中实现的效果就是流程图中第一行的功能

 @RequestMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)public UploadFileResultDto upload(@RequestPart("filedata") MultipartFile multipartFile) throws IOException {if (multipartFile.getSize() > 1024 * 1024 * 10){throw new RuntimeException("文件大小不能超过10M");}//解析文件String content = fileParseService.parse(multipartFile);//唯一idString fileId = UUID.randomUUID().toString();//存储文件memoryStorage.save(fileId, content);UploadFileResultDto uploadFileResultDto = new UploadFileResultDto();uploadFileResultDto.setFileId(fileId);return uploadFileResultDto;}

 解析文件类,这个的最佳实践是:通过一个工厂类检测文件类型,将不同文件类型的文件交给不同的解析工具类执行

我这里仅举一个例子,只包含解析txt文件的条件

public interface FileParseService {String parse(MultipartFile file);
}

 中专工厂

@Service
public class FileParseServiceImpl implements FileParseService {@Overridepublic String parse(MultipartFile file) {//根据文件类型解析文件try {if (Objects.equals(file.getContentType(), "text/plain")){return new TxtFileParser().parse(file);}} catch (Exception e) {throw new RuntimeException(e);}return null;}
}

解析工具类

@Component
public class TxtFileParser {public String parse(MultipartFile file) throws Exception {StringBuilder Totalline;try (BufferedReader reader = new BufferedReader(new InputStreamReader(file.getInputStream()))) {Totalline = new StringBuilder();Totalline.append("文件【").append(file.getOriginalFilename()).append("】:\n");String line;while ((line = reader.readLine()) != null) {Totalline.append(line);}}return Totalline.toString();}
}

当响应结束后,返回文件的内容,然后在controller中生成一个UUID

以UUID作为key文件内作为value,因为最终是要将文件信息以Map的格式保存

创建一个存储类,用于存储文件信息。

@Component
public class MemoryStorage {//文件存储private static final ConcurrentHashMap<String,String> storage = new ConcurrentHashMap<>();//存储文件public void save(String fileId, String content) {storage.put(fileId, content);System.out.println("文件存储成功"+fileId);}//获取文件public String get(String fileId) {return storage.get(fileId);}//删除文件public void remove(String fileId) {storage.remove(fileId);System.out.println("文件删除成功"+fileId);}//清空所有文件public void clear() {storage.clear();System.out.println("文件清空成功");}
}

执行完这些后,文件的上传工作已经完成

此时前端会收到该文件的唯一Id,其会对这个id进行保存。

当用户发送消息时,会带着文件id的列表一并发送到服务器。

请求体:

@Data
public class GetRequest {//消息private String message;.....其余属性//文件列表private List<String> fileIds;

如果文件id列表不为空,服务端会从存储类中取得对应的文件内容

然后将文件内容和用户消息进行拼接

//用户消息
String userMessage = request.getMessage();
//文件内容->将用户消息和文件内容进行拼接
if (request.getFileIds() != null){userMessage = formatFile(request.getFileIds()) + "【用户消息】:\n"+userMessage;
}
 @Autowiredprivate MemoryStorage memoryStorage;public String formatFile(List<String> fileIds){if (fileIds == null){return null;}StringBuilder fileContent = new StringBuilder();for (String fileId : fileIds){String content = memoryStorage.get(fileId);fileContent.append(content).append("\n");}return fileContent.toString();}

最终模型收到的用户消息类似于这样的格式:

文件【xxx】:...【用户消息】:...

使得模型能够区分文件内容和具体的指令并进行分析

这是我的实验效果

 

三.优化路线

 模型对文件进行分析的操作,大致还会有以下的优化步骤

1.数据脱敏:对敏感信息进行屏蔽再进行分析+尽量在用户本地解析,当然这是针对商业化的需求

2.加密传输:对一些重要的信息和文件,在进行网络传输时需要对其进行加密操作

3.分块传输:一些大的文件一次性无法直接传输,需要进行分块

4.文件处理:在本文中我只介绍了文本文件的处理,这种是可以直接进行读取的,其他类型的文件                       例如PDF、EXCEL等还需要进行拓展工具类。甚至是图片、视频、音频等都需要根                         据不同的情况和技术选型选择不同的处理方案

开源项目参考

        以上代码和技术实现都是根据我的开源项目进行的展示,大家需要详细的了解的可以访问下载我的项目,跪求点个star!!!

  Local_Helper: 支持本地大模型的可视化应用

http://www.dtcms.com/a/497117.html

相关文章:

  • 哪里有做网站排名优化教学成果申报网站 化工专业建设
  • 做网站推广员工中企动力是不是国企
  • 外包网站都有哪些网络考试
  • 律师行业做网站的必要性珠海市住房和城乡建设局网站
  • 做服装到哪个网站拿货品质好中国建筑网官网企业愿景
  • Windows 固定 U 盘或移动硬盘的盘符
  • 做足彩推荐赚钱的网站手机访问跳转手机网站
  • 装修公司网站建设长春火车站照片
  • Linux 教程:如何查看服务器当前目录中的文件
  • 做网站备案与不备案的区别网站申请备案流程
  • Datawhale25年10月组队学习:math for AI+Task2线性代数
  • 南昌网站建设基本流程濮阳网站建设专家团队
  • 常州网站建设设计建设视频网站要求吗
  • 自己怎么搭建个人博客网站爱站工具包手机版
  • 石家庄微网站个人博客是什么
  • 第19讲:数据在内存中的存储
  • 湛江企业建站程序竞价网站托管
  • 做网站网站代理怎么找客源贵阳网站建设多少钱
  • 商城网站建设论坛买正品东西哪个网最好
  • 网站关键词排名快速提升长春做网站wang
  • 建筑焊工证查询网站官方网国家信用信息公示系统山东
  • 网站统计模块深圳中高风险地区
  • 哪家做网站好 成都php网站 源码
  • 网站读取速度慢提高网站响应速度
  • HDI电路板的阶数
  • 网站建设培训多少钱婚庆5个坑
  • 网站备案 加急网推技巧
  • 个人网上银行登录官网丰台网站关键词优化
  • 基于SpringBoot的“中学信息技术课程教学网站”的设计与实现(源码+数据库+文档+PPT)_2025-10-17
  • 深圳做营销网站公司哪家好长沙系统开发公司