.NET + Avalonia 跨平台智慧驾考系统(支持 AI 问答)

447 阅读5分钟

前言

本文介绍一个基于.NET + Avalonia 框架开发的跨平台智慧驾考系统,使用C#编写。主要功能包括:在线答题、AI问答、新闻抓取、错题回顾、进步数据分析。

系统在为驾考学员提供全面且个性化的学习支持,帮助大家更自信地迎接考试。

系统介绍

系统基于 .NET 开发的全栈桌面应用,采用 Avalonia框架实现跨平台运行,并通过依赖注入优化程序结构。

代码总量约1万行,集成了多种实用功能,在为驾考学员提供全面的学习支持。

系统功能

在线练习:每日可获取50次、每次50道最新驾考题,确保用户接触到最新的考试内容。

AI问答:智能解答用户在学习过程中遇到的问题。 云端错题记录:自动保存用户的错题至云端,便于随时回顾和复习。

新闻推送:集成中国交通新闻网,实时推送最新政策和行业动态。

错题反省:帮助用户针对性地复习薄弱环节,巩固知识。

数据面板:记录并展示用户的每日答题情况,直观呈现学习进度。

分数预测:利用数学工具分析用户表现,预测驾考成绩,助力了解自身水平。

系统架构

前端(dpa)

后端(dpa.Library)

系统使用

1、在线答题

用户点击答案后,正确选项显示绿色、错误选项显示红色,并且右侧答案栏显示出答案解释。

项目使用了聚合数据的"驾照题库" API,由于目前处于免费版,一次可获取50道题、一天可获取50次。

在图片的显示上,由于bitmap在图片加载速度上的弊端,本项目做出创新:使用了asyncimageloader包,该包可接收网络图片链接、并直接进行下载和显示,速度要比bitmap快得多。

2、AI 问答

项目采用异步编程,调用讯飞集团的星火大模型api,对用户问题作出回答,提升用户体验。

为了增强对话连续性、增强用户体验,本项目给大模型增加了"记忆"功能,用户过去的聊天记录会被作为assistant内容传给ai。

当然,如果不想ai保留过去的记忆,可以点击"清除记忆"消除记录。

3、错题回顾

使用了observerable来监控错题。

一旦在线答题界面有新的错题加入,导致错题集合发生改变,这个行为就会被错题界面捕捉,从而刷新界面、加入新的错题。

错题会显示在右侧列表,点击列表中错题、切换当前展示的错题。

4、问题保存

项目保存问题一共有两种手段:本地数据库,云端数据库。

本地

点击后调用DBHelper的函数。

项目使用copy流、将原有的数据库文件复制到用户电脑上。

之后所有数据都会被存储到该数据库文件上,防止了干扰用户文件统一性。

云端

项目使用了"七牛云"提供的免费存储空间,命名为"drivingexercises"。

当用户点击"保存错题"后,错题会同时被存储进本地文件"exercise.txt",然后该文件会被上传至七牛云端。

这样即便本地数据库丢失,用户也可以在云端重新获取题目。

(需要使用Qiniu插件包)

用户可以下载exercises.txt,打开可以看到过去的错题。

5、进步面板

注:由于oxyplot不支持avalonia 11、本项目暂时取消了该部分代码

项目使用record类记录了用户每天作答的对、错题数。

提取这些数据后,可以使用oxyplot包,绘制用户的进步曲线

(如果您想用livechart来绘制对应的图表,欢迎进行补充!)

得到用户每日作答对题数后,我们将每日对题数除以作答总数、即可得到用户每日得到的分数。

接着我们使用数学插件MathNet,使用高次线性逻辑回归、根据过去的分数、对下一次分数进行预测,从而作为用户驾考成绩的参考。

系统问题

1、由于oxyplot未跟上avalonia 11更新、目前无法绘制图表,若您有好的解决办法欢迎分享。

2、目前默认传输的驾考题目为"科目一"、"C1证",并未进行分类,如果您对此感兴趣欢迎补充功能

项目地址

Gitee:gitee.com/gaopengyue/…

总结

以上仅展示了智慧驾考系统的部分功能。更多实用特性和详细信息,请大家访问项目地址。

希望通过本文能为驾考系统和AI问答开发方面提供有价值的参考。欢迎在评论区留言交流,分享您的宝贵经验和建议。

最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。

也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!

优秀是一种习惯,欢迎大家留言学习!