PPT全方位辅助系统-项目记录12

项目总结

本项目我负责实现AI模型的调用,使用的是智谱ChatGLM。

使用了异步请求来与ChatGLM的API进行通信,并在控制台上实时显示用户输入和API的响应消息。

程序启动时,首先初始化API密钥,主函数从文件中加载API密钥,如果API密钥不存在,提示用户输入并保存。并且初始化JWT令牌。然后程序等待用户输入,并在每次输入后创建ChatClient实例,调用异步调用方法异步发送请求并获取响应。获取服务器响应后,将结果保存并显示给用户。每次请求的输入和响应都可以通过History类保存到文件。在程序退出时,通过注册的关闭钩子删除历史记录文件。

在spring boot项目中,调用该方法调用的模型,进行与AI的对话,以实现辅导、创建、翻译等功能。

所有代码:

ChatClient:实现了一个基本的命令行聊天客户端,通过使用 API 类管理和使用 API 密钥,使用 JWT 令牌进行安全认证,并通过异步方式与ChatGLM的API进行通信。程序可以接收用户输入的问题,并实时显示从 API 返回的响应消息,同时具备对 API 密钥进行加载、保存和程序关闭时清理历史文件的功能。

Parameter:一些调用AI模型使用的请求参数,包括了加密算法、角色定义、语言模型标识、文件路径、浮点数常量等。

API:主要作用是提供一种安全且管理良好的方式来管理用户的 API 密钥信息。通过单例模式和私有构造函数,确保在整个应用程序生命周期内只有一个 API 实例存在,并且只能通过正确格式的 API 密钥字符串来获取该实例。同时,通过提供公开的方法获取用户 ID 和用户密码,使得其他部分的代码可以轻松地访问和使用这些关键信息。

CustomJWT:提供了生成和验证 JWT 的功能,通过 HMAC 签名算法保证了 JWT 的完整性和安全性。它适用于 API 访问授权这种需要在客户端和服务器之间进行安全认证和信息交换的场景。

GetModel:实现了与服务器进行异步通信的功能,主要用于发送请求并处理从服务器返回的响应数据。包括构造 JSON 请求体、发送 POST 请求以及等待和检查任务完成状态的方法。通过这些功能,能够将用户的输入发送给服务器模型,并获取模型生成的响应消息,最后将消息存储到历史记录中,以便后续参考和使用。

ReceiveText:用于接收异步请求的文本响应。在构造函数中,它初始化并发送一个请求到指定的默认 URL,等待响应返回。使用了 GetModel 类的 asyncRequest 方法来异步发送请求,并通过CompletableFuture 来处理异步响应。一旦异步操作完成,响应消息被存储在变量中,可以通过 getReponse 方法获取。

History:提供了简单的功能来管理和操作历史记录,它能够将历史记录以 JSON 格式保存到文件中,并能够从文件中加载历史记录。

SyncTime:用于同步系统时间到网络时间协议(NTP)服务器,并返回时间戳。TimeToSync 方法通过比较当前系统时间与从NTP服务器获取的时间来确定最终返回的时间戳,确保时间的准确性。如果无法获取NTP时间,将回退到当前系统时间。getNTPTime 方法负责发送UDP请求至指定的NTP服务器,并解析服务器返回的时间数据包,将其转换为毫秒级时间戳。

PPTModifier:实现了对 PPT 文件进行修改的功能。通过使用 Apache POI 库,它能够读取指定路径的 PPT 文件,并遍历每个幻灯片中的文本框。对每个文本框,调用传入的 ChatClient 对象的异步方法来获取修改后的文本内容,然后更新文本框的显示内容。最后,将修改后的 PPT 文件保存到指定的输出路径。

TeachController:Spring MVC控制器类,负责处理与教学PPT相关的HTTP请求。通过 @RestController 注解标记为RESTful风格的控制器,并通过 @RequestMapping 注解指定了基础路径。

TranslateController:实现了上传PPT文件并进行翻译处理的功能,并提供了直接下载翻译后PPT文件的功能。Spring MVC控制器类,负责处理与翻译PPT相关的HTTP请求。通过 @RestController 注解标记为RESTful风格的控制器,并通过 @RequestMapping 注解指定了基础路径。

CreateController:Spring MVC控制器类,负责处理与创建PPT相关的HTTP请求。通过 @RestController 注解标记为RESTful风格的控制器,并通过 @RequestMapping 注解指定了基础路径。

CreateService和TeachService:Spring服务类,主要用于与 ChatClient 进行交互并处理消息发送的逻辑。在初始化时,它通过读取文件加载必要的 API Key,并使用该 Key 初始化 ChatClient 实例。实现了消息的异步和同步发送功能,以及适应了服务器发送事件的消息处理需求。

TranslateService:Spring服务类,用于处理PPT文件的翻译功能。在初始化时,它从应用的配置中获取API Key,并利用该 Key 初始化了一个 ChatClient 实例,用于与后端的翻译服务进行通信。接收输入的PPT文件路径和输出路径,然后调用方法执行PPT文件的翻译操作。通过这些功能,该服务类使得应用能够对上传的PPT文件进行自动化翻译,并将结果保存到指定的输出路径中。

翻译前端代码:提供翻译页面的前端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值