💖💖作者:计算机毕业设计杰瑞
💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我!
💛💛想说的话:感谢大家的关注与支持!
💜💜
网站实战项目
安卓/小程序实战项目
大数据实战项目
深度学校实战项目
计算机毕业设计选题推荐
目录
- 基于大数据的生成式AI软件服务用户行为与算力消耗数据分析介绍
- 基于大数据的生成式AI软件服务用户行为与算力消耗数据分析演示视频
- 基于大数据的生成式AI软件服务用户行为与算力消耗数据分析演示图片
- 基于大数据的生成式AI软件服务用户行为与算力消耗数据分析代码展示
- 基于大数据的生成式AI软件服务用户行为与算力消耗数据分析文档展示
基于大数据的生成式AI软件服务用户行为与算力消耗数据分析介绍
本系统《基于大数据的生成式AI软件服务用户行为与算力消耗数据分析》是一个面向毕设场景的综合性数据分析平台,核心定位是对生成式AI软件服务所产生的海量用户行为日志与算力消耗数据进行全流程的采集、清洗、存储、计算与可视化呈现。系统底层采用Hadoop分布式文件系统(HDFS)承载原始日志数据的持久化存储,依托Spark计算引擎实现大规模数据的批量处理与挖掘分析,后端服务层提供Java(Spring Boot)与Python(Django)双版本支持,前端采用Vue+ElementUI+Echarts构建管理界面。在功能层面,系统围绕用户结构与活跃度分析、Token与算力消耗监控、输入内容排行统计、再生率与采纳率计算、用户分群与关联规则挖掘以及算力异常检测等多个维度展开,同时提供AI SaaS行为数据的明细管理、个人信息维护和密码修改等基础支撑功能。整个系统以离线批处理为主要计算模式,通过Spark SQL对HDFS上的清洗后数据进行多维度聚合与指标计算,将分析结果写入MySQL数据库供后端服务查询,最终在前端以图表和表格形式向用户呈现,旨在帮助使用者完整掌握生成式AI服务在用户使用偏好、资源消耗分布和服务质量反馈等方面的关键特征。
基于大数据的生成式AI软件服务用户行为与算力消耗数据分析演示视频
演示视频
基于大数据的生成式AI软件服务用户行为与算力消耗数据分析演示图片
基于大数据的生成式AI软件服务用户行为与算力消耗数据分析代码展示
SparkSession spark=SparkSession.builder().appName("AIServiceBehaviorAnalysis").master("local[*]").config("spark.sql.shuffle.partitions","200").getOrCreate();Dataset<Row>rawDf=spark.read().option("header",true).option("inferSchema",true).csv("hdfs://localhost:9000/user/hive/warehouse/ai_behavior_logs/*.csv");Dataset<Row>cleanedDf=rawDf.filter(rawDf.col("user_id").isNotNull().and(rawDf.col("session_id").isNotNull()).and(rawDf.col("token_consumed").cast("double").gt(0)).and(rawDf.col("action_time").isNotNull())).withColumn("action_date",functions.to_date(col("action_time"))).withColumn("action_hour",functions.hour(col("action_time"))).withColumn("token_consumed_double",col("token_consumed").cast("double")).withColumn("input_length_int",col("input_length").cast("int")).drop("token_consumed").drop("input_length").withColumnRenamed("token_consumed_double","token_consumed").withColumnRenamed("input_length_int","input_length");Dataset<Row>userStructureDf=cleanedDf.groupBy("user_id").agg(functions.countDistinct("session_id").alias("total_sessions"),functions.sum("token_consumed").alias("total_token"),functions.avg("token_consumed").alias("avg_token_per_action"),functions.count("action_time").alias("total_actions"),functions.min("action_date").alias("first_active_date"),functions.max("action_date").alias("last_active_date"));Dataset<Row>activeDaysDf=cleanedDf.groupBy("user_id","action_date").agg(functions.count("action_time").alias("daily_actions")).groupBy("user_id").agg(functions.count("action_date").alias("active_days"));Dataset<Row>sessionLayersDf=cleanedDf.groupBy("session_id").agg(functions.countDistinct("user_id").alias("user_count"),functions.sum("token_consumed").alias("session_total_token"),functions.count("action_time").alias("session_actions"),functions.max("token_consumed").alias("max_token_in_session"));Dataset<Row>tokenConsumptionDf=cleanedDf.groupBy("action_date").agg(functions.sum("token_consumed").alias("daily_total_token"),functions.avg("token_consumed").alias("daily_avg_token"),functions.count("action_time").alias("daily_actions"),functions.countDistinct("user_id").alias("daily_active_users"));Dataset<Row>quotaRankingDf=cleanedDf.groupBy("user_id").agg(functions.sum("token_consumed").alias("total_token")).orderBy(col("total_token").desc()).limit(50);Dataset<Row>inputLengthRankingDf=cleanedDf.filter(col("action_type").equalTo("chat_completion")).groupBy("user_id").agg(functions.avg("input_length").alias("avg_input_length"),functions.max("input_length").alias("max_input_length"),functions.sum("input_length").alias("total_input_length")).orderBy(col("avg_input_length").desc()).limit(50);Dataset<Row>regenerationRateDf=cleanedDf.filter(col("action_type").equalTo("chat_completion")).groupBy("user_id").agg(functions.count("action_time").alias("total_chat_actions"),functions.count(when(col("is_regenerated").equalTo("true"),1)).alias("regenerated_count")).withColumn("regeneration_rate",col("regenerated_count").divide(col("total_chat_actions")));Dataset<Row>adoptionRateDf=cleanedDf.filter(col("action_type").equalTo("chat_completion")).groupBy("user_id").agg(functions.count("action_time").alias("total_chat_actions"),functions.count(when(col("is_adopted").equalTo("true"),1)).alias("adopted_count")).withColumn("adoption_rate",col("adopted_count").divide(col("total_chat_actions")));Dataset<Row>feedbackInteractionDf=cleanedDf.filter(col("feedback_type").isNotNull().and(col("feedback_type").notEqual("none"))).groupBy("user_id").agg(functions.count("feedback_type").alias("feedback_count"),functions.collect_set("feedback_type").alias("feedback_types"));Dataset<Row>userGroupDf=cleanedDf.groupBy("user_id").agg(functions.sum("token_consumed").alias("total_token"),functions.countDistinct("session_id").alias("session_count"),functions.avg("token_consumed").alias("avg_token"),functions.count("action_time").alias("action_count")).withColumn("user_group",when(col("total_token").gt(10000).and(col("session_count").gt(50)),"高消耗高频用户").when(col("total_token").gt(5000).and(col("session_count").gt(20)),"中消耗中频用户").when(col("total_token").gt(1000),"低消耗用户").otherwise("低频低消耗用户"));Dataset<Row>associationRulesDf=cleanedDf.select("user_id","action_type","feedback_type").filter(col("feedback_type").isNotNull().and(col("feedback_type").notEqual("none"))).groupBy("action_type","feedback_type").agg(functions.count("user_id").alias("frequency")).orderBy(col("frequency").desc()).limit(20);Dataset<Row>anomalyDetectionDf=cleanedDf.groupBy("user_id","action_date").agg(functions.sum("token_consumed").alias("daily_token")).groupBy("user_id").agg(functions.avg("daily_token").alias("avg_daily_token"),functions.stddev("daily_token").alias("stddev_daily_token")).withColumn("upper_bound",col("avg_daily_token").plus(col("stddev_daily_token").multiply(2))).withColumn("lower_bound",col("avg_daily_token").minus(col("stddev_daily_token").multiply(2)));Dataset<Row>anomalyUsersDf=cleanedDf.groupBy("user_id","action_date").agg(functions.sum("token_consumed").alias("daily_token")).join(anomalyDetectionDf,"user_id").filter(col("daily_token").gt(col("upper_bound")).or(col("daily_token").lt(col("lower_bound")))).select("user_id","action_date","daily_token","avg_daily_token","upper_bound","lower_bound");cleanedDf.write().mode("overwrite").format("jdbc").option("url","jdbc:mysql://localhost:3306/ai_behavior_db").option("dbtable","ai_behavior_cleaned").option("user","root").option("password","123456").save();userStructureDf.write().mode("overwrite").format("jdbc").option("url","jdbc:mysql://localhost:3306/ai_behavior_db").option("dbtable","user_structure_analysis").option("user","root").option("password","123456").save();tokenConsumptionDf.write().mode("overwrite").format("jdbc").option("url","jdbc:mysql://localhost:3306/ai_behavior_db").option("dbtable","token_consumption_daily").option("user","root").option("password","123456").save();基于大数据的生成式AI软件服务用户行为与算力消耗数据分析文档展示
💖💖作者:计算机毕业设计杰瑞
💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我!
💛💛想说的话:感谢大家的关注与支持!
💜💜
网站实战项目
安卓/小程序实战项目
大数据实战项目
深度学校实战项目
计算机毕业设计选题推荐