曹妃甸新区潮汐表查询2026-01-31

核心内容摘要

Stable Diffusion XL 1.0艺术化落地:灵感画廊保姆级部署案例
LWIP双网口通信的坑我帮你踩了:ZYNQ裸机下IP路由改造避坑手册

【无人机追踪】基于matlab联盟组建+精准Dubins曲线能耗计算+多无人机协同作战【含Matlab源码 15066期】

原文towardsdatascience.com/logiq-service-engineer-chatbot-04e229beee5c?sourcecollection_archive---------4-----------------------#

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/8ede3be3aba1187f0602522551c573a

png图片The New Yorker / Widows © Matt Chinworth | CC BY-NC-ND

0作为 2024 年 Google AI Sprint 的一部分我构建了一个多模态聊天机器人结合了 Gemini

5下面是它如何彻底改变家电支持的方式https://thisisashwinraj.medium.com/?sourcepost_page---byline--04e229beee5c--------------------------------https://towardsdatascience.com/?sourcepost_page---byline--04e229beee5c-------------------------------- Ashwin Raj·发表于数据科学前沿 ·8 分钟阅读·2024 年 9 月 29 日–在各行各业中故障排除对于维持平稳运营、确保客户满意度以及优化服务流程效率至关重要。

然而现场故障排除家电设备可能是一项具有挑战性的任务。

由于有各种型号和无数潜在问题服务工程师常常不得不翻阅手册或在线搜索解决方案这种方法既令人沮丧又费时费力。

这就是配备全面服务知识并能访问最新故障排除手册的聊天机器人能够改变体验的地方。

虽然人们可能认为检索增强生成RAG是此类任务的理想解决方案但在这种情况下它往往力不从心。

因为这些手册通常包含表格、图片和图表等元素而这些元素难以提取且

总结可能会忽略其中的复杂细节使得它不适合用于生产部署。

在本文中我们将着手构建一个使用 Gemini 的聊天机器人帮助现场服务工程师更快速、更直观地找到所需信息。

我们还将探讨 Gemini 提供的高级功能如上下文缓存和文件 API 集成以支持多模态提示。

最后我们将把这个聊天机器人封装在 Streamlit 界面中以便于交互。

在你开始之前为了构建聊天机器人我们将使用 Gemini、Python 3 和 Streamlit。

首先通过运行以下命令在你的本地机器上安装 Streamlitpip install streamlit对于数据库我们将依赖于 Python 预装的 SQLite。

我们还需要一个 Gemini API 密钥以便使用 Gemini

5 Flash 进行推理。

如果你还没有 API 密钥你可以通过这个链接免费创建一个。

一旦你设置了密钥运行以下命令安装 Google AI Python SDKpip install google-generativeai你可以在我的 GitHub 仓库这里找到源代码和其他资源。

致谢本项目提供了 Google Cloud 的信用额度作为#AISprint 2024 的一部分架构在实现之前让我们详细检查系统架构。

该过程从从数据库中提取所需的产品手册并传递给 Gemini 开始。

这充当我们的聊天机器人的知识库为所选电器提供必要的故障排除信息。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/7565ffd5e34ede62623634e9e9b8703d.png图片来自作者一旦文档加载完成我们利用 Gemini 的多模态文档处理能力从产品手册中提取所需的信息。

现在当用户与聊天机器人互动时模型将结合上传的服务手册数据、聊天历史和其他上下文信息提供准确而深刻的回答解答用户的查询。

为了提高性能我们将实现上下文缓存优化重复查询的响应时间。

最后我们将把这个架构封装在一个简单且直观的 Streamlit Web 应用程序中允许服务工程师无缝地与聊天代理互动并访问他们需要的信息。

将服务手册加载到数据库中要开始构建聊天机器人第一步是将故障排除指南加载到我们的数据库中以供参考。

由于这些文件本身没有结构我们无法直接将它们存储在数据库中。

相反我们存储它们的文件路径classServiceGuides:def__init__(self,db_namedatabase/persistent/general.db):self.connsqlite

connect(db_name)self.create_table()defadd_service_guide(self,model_number,guide_name,guide_file_url):cursorself.conn.cursor()cursor.execute( INSERT INTO service_guides (model, guide_name, guide_url) VALUES (?, ?, ?) ,(model_number,guide_name,guide_file_url))self.conn.commit()deffetch_guides_by_model_number(self,model_number):cursorself.conn.cursor()cursor.execute(SELECT guide_url FROM service_guides WHERE model ?,(model_number,),)returncursor.fetchone()在这个项目中我们将在本地目录中存储手册并将它们的文件路径保存在 SQLite 数据库中。

然而为了更好的可扩展性建议使用对象存储服务例如 Google Cloud Storage 来存储这些文件并在像 Google Cloud SQL 这样的数据库服务中维护文件的 URL。

使用 Gemini 构建对话代理一旦产品手册加载到数据库中下一步是使用

5 Flash 构建代理。

这个轻量级模型是 Gemini 家族的一部分并通过一种称为“蒸馏”的过程进行了微调其中来自更大模型的最重要的知识和技能被转移到一个更小、更高效的模型中以支持各种高容量任务的规模。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/e0b374608d80284f7b5c0abd18a

png来自The Keyword的图片来源于 Google为了提高速度和操作效率

5 Flash 模型在多模态推理方面非常高效具有最多可达 100 万个令牌的上下文窗口成为我们服务工程师使用场景的理想选择。

使用

5 Flash 进行多模态文档处理要对我们的服务手册进行推理首先需要将文件上传到 Gemini。

Gemini API 支持将媒体文件与提示输入分开上传使我们能够在多个请求中重复使用文件。

File API 每个项目支持最多 20 GB 的文件每个文件最大支持 2 GBclassServiceEngineerChatbot:def__init__(self):genai.configure(api_keyst.secrets[GEMINI_API_KEY])defpost_service_guide_to_gemini(self,title,path_to_service_guide):service_guidegenai.upload_file(pathpath_to_service_guide,display_nametitle,)whileservice_guide.state.namePROCESSING:print(Waiting for file to be processed.)time.sleep(

service_guidegenai.get_file(service_guide.name)returnservice_guide要上传文件我们使用 upload_file()方法该方法的参数包括路径要上传的文件路径、名称目标文件名默认为系统生成的 ID、mime_type指定文档的 MIME 类型如果未指定将进行推断和 display_name。

在继续之前我们需要通过检查文件的元数据来验证 API 是否成功存储了上传的文件。

如果文件的状态是 PROCESSING则尚不能用于推理。

一旦状态变为 ACTIVE文件即可使用。

如果状态为 FAILED表示文件处理未成功。

对话式响应生成上传服务手册后下一步是利用 Gemini

5 的多模态文档处理能力来生成响应。

API 的聊天功能允许我们收集多轮问题和答案便于深入分析问题并逐步解决。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/1540dd9ce6db00580a566619f3debedd.png作者提供的图片初始化模型时提供具体的指导方针和上下文以塑造聊天机器人的行为至关重要。

这是通过向模型提供系统指令来完成的。

系统指令有助于维持上下文指导互动风格确保一致性并为聊天机器人的响应设定边界同时尽量避免幻觉现象。

classServiceEngineerChatbot:def__init__(self):genai.configure(api_keyst.secrets[GEMINI_API_KEY])defconstruct_flash_model(self,brand,sub_category,model_number):model_system_instructionf Add your detailed system instructions here. These instructions should define the chatbots behavior, tone, and provide any necessary context. For example, you might include guidelines about how to respond to queries, the structure of responses, or information about what the chatbot should and should not do. Checkout my repo for this chatbots system instructions. model_generation_cofiggenai.types.GenerationConfig(candidate_count1,max_output_tokens1500,temperature

4,),modelgenai.GenerativeModel(model_namegemini-

5-flash,system_instructionmodel_system_instruction,generation_configmodel_generation_cofig,)returnmodel我们可以通过调整 GenerationConfig 类中的模型参数进一步控制模型的响应生成。

在我们的应用中我们已将 max_output_tokens 设置为 1500定义了每个响应的最大令牌限制并将 temperature 设置为

4以保持响应的确定性。

使用上下文缓存进行长上下文优化在许多情况下尤其是对于同一文档的重复查询我们最终会将相同的输入令牌反复发送给模型。

尽管这种方法可能有效但对于大规模的生产级应用来说它并不是最优选择。

这是 Gemini 的上下文缓存功能变得至关重要的地方通过减少高 Token 工作负载的成本和延迟提供更高效的解决方案。

通过上下文缓存我们可以在后续请求中引用缓存的 Token而不是每次请求都发送相同的输入 Token。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/1b41ca56dd2eb7728e323325dc

png图片由作者提供在这个项目中我们缓存了系统指令和服务手册文件。

在大规模使用时使用缓存的 Token 相比重复传输相同的数据显著降低了成本。

默认情况下这些缓存 Token 的生存时间TTL为 1 小时但可以根据需要进行调整。

一旦 TTL 到期缓存的 Token 将自动从 Gemini 的上下文中移除。

classServiceEngineerChatbot:def_generate_context_cache(self,brand,sub_category,model_number,service_guide_title,service_guide,ttl_mins70,):context_cachecaching.CachedContent.create(modelmodels/gemini-

5-flash-001,display_namef{service_guide_title}_cache,system_instructionmodel_system_instruction,contents[service_guide],ttldatetime.timedelta(minutesttl_mins),)returncontext_cache需要注意的是只有当输入 Token 数量达到 32,768 或更多时上下文缓存才可用。

如果 Token 数量低于此阈值则需要依赖 Gemini

5 Flash 的标准多模态提示功能。

集成聊天机器人与 Streamlit在我们的聊天机器人响应生成能力就位后最后一步是将其包装成一个 Streamlit 应用创建一个直观的用户界面供用户使用。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/d5221aaf47c78a7a5d1a43c8f

png图片由作者提供界面具有一个下拉菜单用户可以选择他们正在使用的家电品牌和型号。

选择后点击“配置聊天机器人”按钮应用将把相应的服务手册传递给 Gemini并展示聊天界面。

从此工程师可以输入他们的问题聊天机器人将提供相关的回复。

未来展望展望未来有几个有前景的方向值得探索。

聊天机器人的未来版本可以集成语音支持允许工程师与聊天机器人进行更自然的交流从而解决他们的问题。

此外扩展系统以纳入预测性诊断功能可以使工程师预先识别潜在问题避免其导致设备故障。

通过不断发展这个工具目标是为服务工程师创建一个全面的支持系统最终提升客户体验从而改变故障排除的生态系统。

至此我们已经结束了本文。

如果您有任何问题或认为我有任何错误请随时与我联系您可以通过电子邮件或LinkedIn与我取得联系。

直到那时祝您学习愉快

适合夫妻晚上做的运动项目-适合夫妻晚上做的运动项目应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123