实测经验丨构建新一代AI Agents最佳实践(上)
生成式 AI (GenAI) 正在迅速改变行业,使企业能够创建智能的自学习系统。但是,从早期原型转向全面生产带来了重大挑战。
这篇文章将探讨了构建可扩展的、由 Agent 提供支持的应用程序的关键模式和最佳实践,这些应用程序在实际场景中蓬勃发展。
Agent 的开发未来
这篇文章将通过构建一个全能搜索(OmniSearch)Agent 和 一个 Agent 市场整个过程之后,积累的实践见。
智能 Agent 可以模仿部门代表,实现团队之间的无缝协作。一项重大创新是“代理即服务”模式(Agent-as-a-Service),这是一种灵活的模块化方法,可帮助企业有效地部署、管理和扩展 AI 驱动的 Agents。
这个系列文章涵盖的主题包括直接提示、评估、嵌入、代理检索增强生成和微调。无论是增强企业搜索还是创建可扩展的 AI 驱动型服务,都可以给你提供一些实用性指导。
本文章先讲直接提示和评估。
掌握关键的 LLM 技术:视觉分解
01 直接提示:利用 LLM 最简单方法
与大型语言模型 (LLM) 交互的最简单方法之一是通过直接提示:发送查询并立即获得响应。这种方法不需要额外的逻辑层,是将 AI 集成到工作流中的最快方式。
示例1:用于电子商务的 AI 聊天机器人
💬 用户:“我的订单在哪里?”
🤖 AI:“请提供您的订单 ID,我可以为您查看状态!”
业务用例:这种方法非常适合客户支持、内容生成和快速 AI 原型设计。
在此设置中,没有额外的逻辑层,只是用户和 LLM 之间的直接交换,使其成为一种简单且易于实现的解决方案。
示例2:代码生成提示,用于驱动 Java 中的业务逻辑
开发一个接受整数数组的 Java 方法。此方法旨在迭代数组中的每个整数,对其值求平方,并将这些平方值累积到新数组中。
这个方法的主要功能是:逐个遍历输入数组中的每一个整数,将每个整数的值进行平方运算,然后把这些经过平方运算后得到的值依次存放到一个新的数组当中。
最后,这个新数组(其中包含了原始输入数组中每个元素的平方值)会作为该方法的输出结果被返回。例如,如果输入的数组是 `{1, 2, 3, 4, 5}`,那么按照这个方法的逻辑进行处理后,预期得到的输出数组就应该是 `{1, 4, 9, 16, 25}`。这里所要求的输出格式,就是能够完成上述任务的一段 Java 代码片段。
02 评估 (Evals):验证 LLM 的新方法
根据给定任务及其上下文相关性评估 LLM 的响应。在开发软件时,确保其按预期运行至关重要。传统系统通过测试用例实现这一点,其中特定输入产生一致的输出。
如果系统符合预期,则通过测试。
但是,基于 LLM 的系统运行方式不同。它们是不确定的,这意味着相同的输入可以产生不同的响应。这种可变性使传统的通过/失败测试无效。相反,AI 可靠性是使用 EVAL (评估) 指标进行评估的。
软件测试与 EVAL
与传统测试不同,确切的答案很重要,评估 LLM 侧重于响应质量和有用性。这种灵活的方法可确保 AI 系统保持可靠和有效,即使其响应发生变化也是如此。
谁应该评估 AI?
在评估 LLM 时,根据谁计算分数,存在不同的技术,这导致了一个关键问题:谁应该担任裁判?
评估技术
自动评估,另一个 LLM AI 模型或预定义指标评估响应。
例子:BLEU、ROUGE、GPTScore
✅ 快速且可扩展
❌ 可能会错过意图或上下文等细微差别
人工评估 — 人们根据准确性、相关性和流畅性对模型的输出进行审查和评级。
例子:专家审阅者、用户反馈
✅ 更好地理解背景和质量
❌ 耗时且主观
自我 LLM 评估 — 将自我 LLM AI 指标与人工判断相结合,以实现平衡评估。
例子:由人工审核员审核的 AI 生成的分数
✅ 高效且上下文感知
❌ 需要协调和改进
最终,最佳判断取决于用例。虽然 AI 可以提供快速评估,但人类对于理解自动评分可能忽略的意图、道德和细微差别仍然至关重要。
动手实践示例:OmniSearch Agent 的 AI 评估
测试一下处理 IT 支持查询的 OmniSearch AI Agent:
💬 用户:“如何重置我的公司电子邮件密码?”
🤖 AI:“你可以通过访问 IT 自助服务门户来重置你的公司电子邮件密码。如果你需要进一步的帮助,请通过 [email protected] 联系 IT 支持。“”
使用 DeepEval 验证响应:
from deepeval import assert_testfrom deepeval.test_case import LLMTestCasefrom deepeval.metrics import AnswerRelevancyMetricdef test_answer_relevancy():# Define the relevancy metric with a thresholdanswer_relevancy_metric = AnswerRelevancyMetric(threshold=0.5)# Create a test case for the IT Support Agent in the OmniSearch systemtest_case = LLMTestCase(input="How do I reset my corporate email password?",actual_output="You can reset your corporate email password by visiting the IT self-service portal and following the password recovery steps. If you need further assistance, contact IT support at [email protected].",retrieval_context=["""To reset your corporate email password, visit the IT self-service portal and follow the password recovery steps.If you are unable to reset it, contact IT support at [email protected] for further assistance."""])# Run the assertion to evaluate relevancyassert_test(test_case, [answer_relevancy_metric])# Execute the test
确保 AI 响应的相关性和准确性可以提高用户信任度和业务采用率。
将自动评估与人工判断相结合是 AI 验证的黄金标准。AI 可确保速度和可扩展性,而人类则增加了上下文、道德和业务一致性,使 AI 驱动的系统更加值得信赖和智能。
Last but not least
这个系列的下一部分中,我们将继续探讨:嵌入和代理检索-增强生成(RAG) - 增强AI检索和合成相关最新信息的能力,以及微调,为特定于域的任务自定义 LLM 并提高性能。
关注公众号,用极客视角洞察未来!
往期精彩文章推荐: