Go 开发中你应该了解的 5 种 Mock 方法
在软件开发过程中,单元测试是确保代码质量的重要环节,而在编写单元测试时,我们通常需要隔离待测试的代码与其依赖的外部组件,例如引用的外部方法、数据库等。Mock 技术可以帮助我们模拟这些外部组件,控制它们的行为和输出,从而让我们可以专注于测试目标代码的逻辑。本文将介绍在 Golang 中常用的 5 种 Mock 方法,帮助你在编写单元测试时更加得心应手。
在软件开发过程中,单元测试是确保代码质量的重要环节,而在编写单元测试时,我们通常需要隔离待测试的代码与其依赖的外部组件,例如引用的外部方法、数据库等。Mock 技术可以帮助我们模拟这些外部组件,控制它们的行为和输出,从而让我们可以专注于测试目标代码的逻辑。本文将介绍在 Golang 中常用的 5 种 Mock 方法,帮助你在编写单元测试时更加得心应手。
AWS 是目前全球最大的云服务提供商,提供了丰富的云服务,开发 Web 应用时经常会用到 AWS 的各种服务。在开发这种应用时,有时候开发人员为了图方便省事,只创建一个 AWS 角色来管理应用所涉及的所有 AWS 资源,这样不仅不利于 AWS 资源的管理,而且还会因为权限不当导致系统的安全性受到威胁。本文将介绍 AWS 角色中权限相关的内容,以及如何使用 AWS 角色策略对资源和权限进行隔离。
之前介绍 Self-RAG 的时候提到了其中的按需检索功能,就是根据用户的问题来判断是否需要进行文档检索,如果不需要检索的话则直接返回 LLM(大语言模型)生成的结果,这样不仅可以提升系统的性能,还可以提高用户的体验。在 Self-RAG 中按需检索是通过特殊训练后的 LLM 来实现的,但是在高级 RAG(Retrieval Augmented Generation)检索中我们可以使用查询路由来实现这个功能,借助查询路由我们可以轻松实现类似代码中的 If/Else 功能。今天我们就来介绍查询路由的原理以及实现方式,并通过代码示例来了解查询路由在实际项目中的使用。
编程语言 Python 随着 AI 的发展越来越受开发人员的喜爱,目前已经是最流行的编程语言,但由于 Python 是一门相对较老的语言,并且经过 Python2 到 Python3 这一漫长而复杂的迁移历程,使得一些 Python 开发人员可能还在使用一些过时的工具和库。今天我们就来带大家了解当前 Python 生态系统中最流行最实用的开发工具,让你彻底告别那些老古董。
RAG(Retrieval Augmented Generation)技术中检索是一个非常重要的环节,检索的准确性直接影响到生成的质量,但普通 RAG 的向量检索技术并不能满足所有场景下的需求,比如在一些大型私有文档库中,传统的检索技术往往表现不好。目前已经有很多研究团队在 RAG 中引入知识图谱来提高检索的准确性,并且取得了很好的效果。今天我们就来了解一下知识图谱的原理,以及如何在 RAG 中进行使用。
Self-RAG 是另外一种形式的 RAG(Retrieval Augmented Generation),它与其他 RAG 检索策略不同,它并不是在 RAG 流程上对某个模块进行增强, 而是在 RAG 不同的模块上进行优化改进,从而达到改进整体 RAG 流程的目的。如果你对 Self-RAG 比较陌生或者只是听说它的名字,那么今天请跟我一起来了解 Self-RAG 的实现原理,以及通过学习 Self-RAG 的代码实现来更好地理解其中的细节。
我们之前介绍过一些 RAG (Retrieval Augmented Generation)的评估工具,比如 Turlens、Ragas 等,它们的评估指标丰富、使用方便,但它们始终是独立的第三方工具,需要和 LLM(大语言模型)开发框架(LangChain、LlamaIndex)进行集成才能使用,功能一旦更新不及时就会导致不可用的问题。如果你正在使用的是 LlamaIndex 开发框架,那么恭喜你,LlamaIndex 内置了评估工具,可以帮助你快速评估 RAG 应用,无需集成第三方的评估工具。今天我们就来详细了解一下 LlamaIndex 内置评估工具的原理以及它们的使用方法。