# 七牛云2024-1024比赛-GitHub 数据应用 **Repository Path**: wu-zhenbin666/qiniuyun2024_1024Context_GitHubDataApp ## Basic Information - **Project Name**: 七牛云2024-1024比赛-GitHub 数据应用 - **Description**: 七牛云2024-1024比赛-GitHub 数据应用 参赛队伍 华厦武大 参赛人员 队长 吴振彬 队员 陈龙翔 陈俊杰 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2024-10-24 - **Last Updated**: 2024-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 七牛云2024-1024比赛-GitHub 数据应用 --- ## 一、功能演示 - 演示视频: 见video下的压缩包 ## 二、项目介绍 本项目开发了一款基于 GitHub 开源项目数据的开发者评估应用,提供开发者的技术能力评级、国别推测及领域匹配等功能。 - TalentRank 实现,用于评估开发者的技术能力。该评级依据两个关键指标:项目的重要程度和开发者在这些项目中的贡献度。通过分析 GitHub 上的开源项目,系统能够准确评估每位开发者的技术能力,从而为用户提供可靠的开发者排名。 - 应用还提供开发者的 Nation 推测功能。对于那些在个人资料中未明确自己国家或地区的开发者,系统将通过分析其社交网络及贡献项目的分布来推测其所属国家。 - 在搜索功能方面,开发者的领域可以通过关键词进行匹配,并按 TalentRank 进行排序。用户可以根据 Nation 进行筛选,例如仅显示来自中国的开发者,这增强了数据的可用性和针对性。 - 系统对所有猜测的数据提供置信度指标,低置信度的数据将显示为 N/A,帮助用户识别数据的可靠性。 - 接入阿里大语言模型与OpenAI大语言模型,可以自动整理开发者的技术能力评估信息,包括其博客链接和 GitHub 相关介绍。 ## 三、项目运行说明 **克隆项目代码**
```git clone git@gitee.com:wu-zhenbin666/qiniuyun2024_1024Context_GitHubDataApp.git``` **启动后端**
```将githubDataApp,给标记为模块,运行即可,注意,在运行前要启动redis和RabbitMQ,两个都采用默认端口``` **打开Web前端**
```从hello.html进入前端初始页面``` ## 四、技术架构 - 前端使用 amis 低代码前端框架 + js - 后端使用 Spring Boot 框架,通过restful的方式进行前后端交互,为用户提供全面的对GitHub开发者技术能力评估和信息查询功能。 - 存储方面,因为设计到大量的对github的api的查询,时延比较长,使用 Redis 进行缓存,查询开发者信息或仓库列表时,Redis 能够快速返回缓存数据,提高应用响应速度。 - 引入RabbitMQ作为消息队列,RabbitMQ 的异步消息处理机制,能够有效管理大量请求,避免系统崩溃,确保各服务之间的解耦与流量削峰,使得系统在高并发情况下依然保持稳定。 - 应用接入阿里大语言模型和ChatGPT,实现开发者技术能力评估信息自动整理。(目前只用了阿里大模型,chatgpt需要付费) 消息流转过程:先在redis中查找,redis中没有,调用api查找,然后用消息队列异步同步redis,考虑到项目中的数据具有时效性,不采用数据库存储,纯后端. 技术架构图 ![输入图片说明](%E4%B8%83%E7%89%9B%E4%BA%91%E5%8D%8E%E5%A4%8F%E6%AD%A6%E5%A4%A7%E9%A1%B9%E7%9B%AE%E6%9E%B6%E6%9E%84%E5%9B%BE.png) ## 五、模块功能 | 功能名称 | 作用 | | -------- | -------- | | 获取开发者信息 | 根据 GitHub 用户名获取开发者的基本信息;返回一个 DeveloperVo 对象,包含开发者的详细信息,如姓名、头像、个人介绍等 | | 获取开发者的仓库信息 | 获取指定开发者的所有仓库列表及其基本信息,返回一个 List,每个元素包含开发者的仓库信息,如仓库名、描述、星标数等。 | | 获取开发者的技术能力评级 | 根据开发者的贡献和参与情况,生成其技术能力的评级 | | 猜测开发者的国家 | 猜测开发者的国家或地区,特别是当用户资料中缺少该信息时;返回国家名称和置信度分数 | | 获取开发者的贡献情况 | 获取开发者在不同项目中的贡献情况;返回贡献度,如提交次数、代码行数等 | | 根据领域和国别获取开发者列表 | 根据编程语言(领域)和国家筛选并排序开发者列表;返回符合条件的开发者信息。 | | AI助手功能 | 发起与指定开发者的聊天功能,可以进行实时交流或咨询,辅助进行开发者技术能力评估信息整理 | ## 六、项目分工 | 团队成员 | 主要工作 | | -------- |--------------| | 吴振彬 | 开发,设计,leader | | 陈龙翔 | 算法优化 | | 陈俊杰 | 文档撰写等 | ## 七、效果图展示 ![输入图片说明](video/image.png) ![输入图片说明](video/image2image.png) ![输入图片说明](video/image3.png) ![输入图片说明](video/image4.png) ![输入图片说明](video/image5.png) ![输入图片说明](video/image6.png) ![输入图片说明](video/image7.png) ![输入图片说明](video/image8.png) ![输入图片说明](video/image9.png)