hxy published on included in 技巧 Java开发 上期我们主要讲述了后端springboot开发规范和一些基本配置,现在阐述一些常用技巧。 如发邮件、微信配置等,这些都十分简单但易忘,故集中整理。
微信接口集成 调用微信官方api即可。 核心要素为api_key和api_secret,配置在yaml中。
accessToken的获取 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 public static String getAccessToken() throws Exception{ HttpClient httpClient = new HttpClient(); String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + secret; GetMethod getMethod = new GetMethod(url); getMethod.addRequestHeader("accept", "*/*"); //设置Content-Type,此处根据实际情况确定 getMethod.addRequestHeader("Content-Type", "application/x-www-form-urlencoded"); String result = ""; try { int statusCode = httpClient.
hxy published on included in 技巧 Java开发 开发规范 使用dto封装类实现数据传输,少用Map。 使用@RequestBody和@RequestParam接收请求参数。 接口类型一般为GET、POST、DELETE。 统一使用{“code”: “”, “msg”: “”, data: “"} 的规范返回数据。其中200代表正常,500代表错误。 统一使用全局异常处理,少用try catch,保证代码简洁性。 数据具有关联性时,使用逻辑删除代替物理删除。 统一使用jwt token,从中读取用户信息。防止平行越权漏洞。 加入必要的注释,便于多人合作。 开发者更新后上传jar包至服务器,同时将最新代码commit到github上。 变量名统一小驼峰,类名大驼峰 全局异常处理 GlobalExceptionHandler
SSL的配置 笔者在之前的博客中阐述了nginx部署ssl证书的方式。与此同时,后端也务必加上ssl证书。因为微信小程序等平台校验域名合法性。 与之前稍有不同的是,springboot部署ssl证书要求的是jks格式证书。可采用线上工具将证书合成为jks。 配置过程非常简单,简述如下。
application.yaml 1 2 3 4 5 6 7 server:port:8083# 示例ssl:enabled:truekey-store:classpath:ssl/api.xxx.cn.jkskey-store-password:passwordkey-store-type:JKS HttpsConfig.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 @Configuration public class HttpsConfig { @Value("${custom.
hxy published on included in 技巧 前端杂谈(一) 前端项目集锦 原生 叮当葫芦-认知障碍数据分析平台 “认知障碍数据分析平台”
Jquery Vue vue-element-admin “水果电商后台服务端”
uniapp React “智问领航”
ant-design-pro 函数封装思维 API接口封装 封装request.js用于ajax请求 利用Promise的特性,封装axios、ajax、uni.request、taro.request等等
示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 export const request = ({ url, method, data, headers }) => { return new Promise((resolve, reject) => { const xhr = new XMLHttpRequest(); // 如果是 GET 请求,将 data 转为查询参数 if (method.
hxy published on included in 技巧 前端杂谈(一) 前端项目集锦 {0}### 原生 叮当葫芦-认知障碍数据分析平台 “认知障碍数据分析平台”
Jquery Vue vue-element-admin “水果电商后台服务端”
uniapp React “智问领航”
ant-design-pro 函数封装思维 API接口封装 封装request.js用于ajax请求 利用Promise的特性,封装axios、ajax、uni.request、taro.request等等
示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 export const request = ({ url, method, data, headers }) => { return new Promise((resolve, reject) => { const xhr = new XMLHttpRequest(); // 如果是 GET 请求,将 data 转为查询参数 if (method.
hxy published on included in 保研 简历面试 绩点 本科最擅长什么科目,最不擅长什么科目? xxx课为什么分数不高? 项目经历 服务外包大赛中,你作为队长在合作过程中有没有困难,如何解决? 国家级大创项目做了什么?现在处于什么阶段?你将负责什么? 项目有没有正式上线? 科研经历 这篇论文主要的创新点是什么?为什么会想到这个idea?你参与的工作是什么? 为什么会写这篇论文?论文的形成过程有没有老师的指导? 你什么时候开始参与科研?为什么只发表了CCF C论文?这篇完成用了多久? 为什么用GAT传播,GAT和GCN有什么区别? 冷启动问题 你为什么选择了这个方向?有何研究价值? 专业技能考察 pytorch中如何实现维度改变?如何互换维度? 如何实现学习率调度器 batch_size的作用是什么?请讲出两类分批方法 滑动窗口法、分段法
num_workers的作用是什么? 用于指定在加载数据时要使用的子进程(worker)数量。它的主要作用是通过多线程或多进程来并行化数据加载,从而提升训练效率,尤其是在处理大型数据集时。 如何在 PyTorch 中实现模型的梯度累积?这种方法适用于什么场景? 时间序列预测中能否使用交叉验证划分训练集和测试集? 不能。时间序列具有时序依赖,如果交替划分,没有意义。一般把前面的作为训练集,后面的为测试集 是否了解RAG框架?讲一下RAG和微调的区别,和各自的优势。 专业课知识 算法题 其他 本科期间你是如何平衡学业、学生工作和竞赛科研? 作为一名双非学生,你认为自己有什么特点? 你认为自己有什么缺点? 你为什么会选择直博?未来有何职业规划?
hxy published on included in 科研 1.《CODERAG-BENCH: Can Retrieval Augment Code Generation?》 前置条件: 语言模型已经被证明具有优秀的生成代码能力,RAG在文本任务中取得成功。若将两者合在一起能有好的效果吗?
论文的工作: 探索在何种场景下检索能够有益于代码生成模型?存在什么挑战? 首先策划了一个综合评估基准,CODERAG-BENCH。 三类代码生成任务:包括基础编程、开放领域、库级别的问题。 将五个方面的文档聚合起来检索上下文。
发现: 当前的检索器存在困难去抓取上下文。希望CODERAG-BENCH可以作为一个有效的测试台,以鼓励进一步开发高级面向代码的RAG方法。
思考: 和夏令营任务相结合,此时我们的任务是生成循环代码。依靠的上下文是毕设论文中研究出来的数据集。
研究过程 共收集了九千代码问题和25000000检索文档, CODERAG-BENCH的特点:任务多样性、严谨可复现的评估、统一接口。 RAG减少了在模型参数[2]中包含所有知识的需要,从而在各种场景[13]中提高精度,即使没有额外的训练[31,25]。
论文贡献: 提出了全新的评估基准(CODERAG-BENCH),来弥补鸿沟并增强在替代范式检索增强代码生成的研究。
NDCG、Precision和Recall
尽管代码生成模型可以从多个场景中的地面真实文档中获益,但当前的检索模型在选择准确的文档方面存在困难,特别是对于开放域任务。与此同时,许多代码生成模型由于使用检索到的文档的上下文能力有限,或者有效地执行RACG的能力有限,因此获益甚微。
(i)不同的任务:代码生成涉及在不同级别(行、功能、存储库)和不同域(关闭、打开)上操作的通用任务。 (ii)严格和可重复性的评估:我们提供高质量的地面真实文档注释,以实现检索评估,并对所有代码生成任务进行基于执行的评估,以严格衡量功能的正确性。(iii)统一接口:虽然当前的数据集使用异构管道,但我们的代码库为检索、增强生成和评估提供了一个统一的接口。
2.《Automatic Semantic Augmentation of Language Model Prompts (for Code Summarization)》 大语言模型提示词自动语义增强(用于代码摘要)
论文贡献 使用来自代码的事实进行软件工程任务的ASAP方法。 我们对代码-002、文本-003上的代码总结任务进行了评估。和GPT-3.5-turbo模型对抗使用香草BM25构建的几个镜头提示基线(第4.1节)。 我们发现,ASAP方法在统计学上显著提高了在代码摘要任务上的LLM性能。在几乎所有的情况下,我们观察到几乎或超过2个BLEU的统计学显著改善;对于PHP,我们(据我们所知)在这个具有挑战性的数据集上首次打破了30个BLEU。 我们发现,ASAP也可以提高代码完成任务的性能。 3.《From Local to Global: A Graph RAG Approach to Query-Focused Summarization》 图RAG方法,用于聚焦于询问的摘要 Query-Focused Summarization: QFS QFS 会根据用户提供的查询,提取与之相关的核心信息,省略与查询无关的内容。
论文核心图 实现过程 提出了Graph RAG方法,基于LLM汲取知识图谱的全局摘要。 为了评估这个方法,我们使用一个LLM去生成多样的集合,包含以活动为中心的意义构建问题,从短小的描述
中间的、低等级的社区摘要表明优秀的性能,超过源文本摘要在相同的metrics,并消耗较少token。
构建步骤: 源文档->文本语料库 文本语料库->元素实例 元素实例->元素摘要 元素摘要->图社区