大聪明:
OpenAI 出品,涵盖 AI 应用的各个场景
我梳理了一天
我的排版真好看
智能体协调与动态管理方法
Orchestrating Agents: Routines and Handoffs
在处理语言模型时,有效的提示和工具往往能显著提升性能。本文介绍了一种通过“例程”和“交接”来协调多个智能体(agent)的方法。例程是指由自然语言指令和所需工具组成的步骤集合,能够灵活应对复杂情况。通过使用一个名为 Swarm 的示例库,开发者可以方便地实现这些思想,并通过简单的循环结构执行例程和处理工具的调用,以支持动态的交接管理。该方法旨在提升多流程处理的简洁性和可控性。
提示缓存优化全新体验
Prompt Caching 101
OpenAI 现在为超过 1024 个 tokens 的提示提供折扣的缓存功能,支持在超过 10,000 个 tokens 的长提示中将延迟降低多达 80%。通过在 LLM API 请求中缓存重复信息,可以显著减少延迟和成本。缓存在组织层面进行,只有同一组织的成员才能访问共享缓存。对于超过 1024 个 tokens 的提示,缓存自动激活,并会根据缓存的命中情况在使用数据中提供相关指标。这种优化特别适用于处理多轮对话的聊天机器人、编程助手等场景,从而提升响应效率和用户体验。
o1 模型的结构化输出技巧
Using chained calls for o1 structured outputs
o1 推理模型的初始版本(2024 年 9 月)具有高级功能,但不支持结构化输出。这意味着请求返回的 JSON 信任度较低,依赖于提示内容。本文介绍了两种使用 o1-preview 模型获取有效 JSON 格式的方法,通过调用 OpenAI API 来实现。该方法首先获取包含公司信息的 HTML,然后利用 o1 模型分析哪些公司能够受益于 AI 技术,并返回结构化的 JSON,最后通过连接调用 gpt-4o-mini 进行类型安全的数据处理。
自主浏览工具构建指南
Building a Bring Your Own Browser (BYOB) Tool for Web Browsing and Summarization
构建一个“自主浏览工具”(Bring Your Own Browser,BYOB)可有效解决大型语言模型(Large Language Models,LLMs)因知识截止日期而无法获取最新信息的问题。该工具通过使用 Python 集成谷歌自定义搜索 API,实时检索网络上的相关数据,并将信息整合后传递给 LLM,从而生成基于最新信息的回答。流程包括设置搜索引擎、构建搜索字典以及生成增强检索响应(Retrieval-Augmented Generation,RAG),从而支持用户获取最新的产品发布信息。
ChatGPT 与 Canvas LMS 集成指南
GPT Actions library - Canvas Learning Management System
Canvas Learning Management System (LMS) 是一个广泛使用的在线学习和教学平台,提供课程管理、内容传递和评估等功能。通过与 ChatGPT 的自定义操作集成,教育者可以使用人工智能增强课程内容、自动化任务,并为学生提供个性化学习体验。例如,ChatGPT 可作为课程助手,帮助学生导航课程、准备考试和获得反馈。此外,Canvas API 还有其他潜在的应用案例,如课堂分析和报告生成。
推理驱动的数据验证方法
Using reasoning for data validation
该指南展示了如何使用 o1-preview 模型通过推理进行数据验证。数据验证在医疗等敏感领域非常重要,传统方法往往依赖于预定义规则,而 o1 模型拥有更灵活的边界分析能力。本示例通过生成合成医疗数据集,定义验证函数,评估模型识别数据问题的准确性,最终计算精度、召回率和 F1 分数。结果显示,该方法在问题识别和精确定位方面具备良好的性能,有助于提升多个领域的数据验证效率。
提升 LLM 决策能力的例程生成方法
Using reasoning for routine generation
在开发客户服务解决方案时,首先需要将知识库文章转化为 LLM(大型语言模型)可理解和执行的程序化例程。例程包含逐步的操作指令,帮助 LLM 有序处理复杂的知识库内容。通过简化这些文章为具体的行动步骤,有助于提高 LLM 的决策能力,减少信息处理中的模糊性和错误风险。该过程虽然耗时、挑战重重,但能够实现更高效、可扩展的客户服务。最终,转化后的例程可直接用于解决用户请求,实现自动化服务。
ChatGPT 与 Retool 工作流集成指南
GPT Actions library - Retool Workflow
GPT Action 提供了连接 Retool Workflow 的方法,用户可以利用 ChatGPT 的自然语言处理能力,通过 webhook 触发将输入发送至 Retool。当 Retool 执行完相应的工作流后,会将结果以 JSON 对象的形式返回给 ChatGPT。这种集成可以用于将 Retool 工作流与自定义代码、外部 VectorDB 结果等直接连接,提高工作效率。设置中包括获取 API 密钥、配置工作流以及在 ChatGPT 中进行认证等步骤。
ChatGPT 与 Snowflake 中间件集成指南
GPT Actions library - Snowflake Middleware
该文档提供了如何将 ChatGPT 与 Snowflake 数据仓库连接的指导,特别是在通过 Azure Functions 中间件处理 SQL 查询的过程中。开发者可以利用此技术,提取数据并格式化为 CSV 文件,以便在 Python 环境中进行数据分析。通过设置 OAuth 安全集成,确保用户认证并限制数据访问,以便安全地处理数据操作。创建中间件后,开发者可根据需求定制 Azure Function App 以执行 SQL 查询并返回结果文件的安全预签名 URL,最终在 ChatGPT 中利用这些数据进行业务分析与决策。
ChatGPT 与 Snowflake 数据集成指南
GPT Actions library - Snowflake Direct
该文档为开发者提供了构建 GPT Action 与 Snowflake 数据仓库连接的指南。用户可以通过 ChatGPT 的自然语言能力直接连接 Snowflake,实现对数据的查询和分析。该 GPT Action 通过用户提问,动态生成 SQL 查询以检索相关数据,并支持基本的数据分析需求。需注意,生产环境中建议使用中间件将结果格式转换为 CSV 文件,以解决 GPT Actions 的数据传输限制。同时,还提供了必要的 API 文档和安全集成设置步骤。
GPT Action 与 Google Cloud Function 连接指南
GPT Actions library (Middleware) - Google Cloud Function
该文档提供了关于如何构建一个连接 GPT Action 和 Google Cloud Functions 的中间件的指南。用户可以利用 ChatGPT 的自然语言处理能力,通过设置 OAuth 保护的 Google Cloud Functions 实现与各种应用的互动。中间件可用于处理 API 的文本响应,支持文本、CSV 文件和 PDF 文件等多种数据类型,典型使用场景包括查询 Google Cloud SQL 或触发一系列函数。还包含了设置、部署和身份验证的详细步骤。
ChatGPT 与 Google Drive 集成指南
GPT Actions library - Google Drive
该文档提供了开发针对 Google Drive 的 GPT 行动(GPT Action)的指导。此行动允许用户列出和查询 Google Drive 中的文件,加载文件内容以便在 ChatGPT 中使用,适用于处理较小的文档如会议记录和产品设计文档。用户可通过自定义的 GPT 轻松获取文件信息,满足查询和文档分析的需求。文中还包括 Google Drive API 的使用示例和认证设置步骤,协助开发者了解如何集成此行动。
ChatGPT 与 Redshift 集成指南
GPT Actions library - AWS Redshift
该文档为开发人员提供了建立与 Redshift 连接的 GPT Action 的详细指导。通过 AWS 功能,用户可以执行 SQL 查询并返回结果文件。该解决方案允许数据科学家和普通用户访问并分析其数据,提高对潜在异常的可见性。文中包含了应用前提、所需库的安装、代码示例、环境配置及API请求方法等信息,确保实现与 Redshift 的有效交互。
GPT Action 的 AWS 安全交互指南
GPT Actions library - AWS Middleware
该技术文章介绍了如何建立一个受 OAuth 保护的 AWS Lambda 函数,以便与 GPT Action 和示例应用程序连接。通过 AWS SAM(无服务器应用模型),用户可以访问各种 AWS 服务,如 AWS Redshift、AWS DynamoDB 和 AWS S3。创建的 Lambda 函数只能由经过身份验证的用户访问,并具备动态参数设置、API 网关映射等功能。读者可按照给出的模板和步骤,在 AWS 中部署和测试此功能,从而实现与 AWS 应用程序的安全交互。
多代理系统的结构化输出方案
Structured Outputs for Multi-Agent Systems
本食谱介绍了如何利用结构化输出(Structured Outputs)构建更强大的多代理系统。结构化输出基于 JSON 模式和函数调用,确保模型输出遵循严格的模式。通过建立多个专门的代理,系统可以高效处理数据清洗、分析和可视化等任务,从而提高整体性能。这一新功能可广泛应用于各类用例,提升系统的鲁棒性。
结构化输出功能简介
Introduction to Structured Outputs
Structured Outputs 是 Chat Completions API 和 Assistants API 中的新功能,确保模型生成的响应始终符合提供的 JSON Schema。这一功能通过在 API 调用中设置参数 strict: true 来启用,适用于指定的响应格式和函数定义。通过 Structured Outputs,可以实现更严格的输出格式,适用于如用户输入数据提取、文章总结等多种用例,从而提高应用程序的稳定性和准确性。该功能目前仅支持 gpt-4o-mini、gpt-4o-2024-08-06 及未来模型。
ChatGPT 与 Zapier 整合指南
GPT Actions library - Zapier
本指南提供了为特定应用构建 GPT Action 的开发者说明。通过将 ChatGPT 与 Zapier 连接,用户可以实现与超过 6,000 个应用和 20,000 个操作的即时集成。示例用例包括构建日历助手 GPT,查询日历事件并提供与会者的 LinkedIn 资料的额外背景信息,以及将 Hubspot 与 ChatGPT 连接的 CRM GPT,便于销售团队随时更新或查看联系人和记录。使用前请确保在 Zapier 中配置所需的 AI Actions。
ChatGPT 与 Box 应用集成指南
GPT Actions library - Box
该文档为开发者提供了如何为特定应用开发 GPT Action 的指南,其中介绍了连接 chatGPT 和 Box.com 账户所需的步骤。该方案通过 Box API 操作( Box API Action )和 Azure 函数格式化响应( Azure function )实现数据交互,允许用户查询文件、获取元数据和进行审计跟踪。此外,用户可通过此 GPT Action 进行数据可视化和内容分析,优化信息管理。要求开发者具备 Box 开发者账户,并熟悉 OAuth 2.0 身份验证。
GCP 中的向量搜索与 GPT 集成指南
GCP BigQuery Vector Search with GCP Functions and GPT Actions in ChatGPT
该笔记本提供了逐步指导,介绍如何在 Google Cloud BigQuery 中使用向量搜索,通过 OpenAI 的 embeddings 创建数据,并在此基础上构建 Google Cloud Function,以便与 ChatGPT 中的自定义 GPT 进行集成。这可以帮助客户在 Google Cloud Platform (GCP) 内设置 RAG 基础设施,并将其作为端点与其他平台集成。笔记本详细介绍了环境配置、数据准备、BigQuery 表创建及上传、GCP Function 部署和搜索功能的实现。
ChatGPT 与 Confluence 整合指南
GPT Actions library - Confluence
该文档为开发人员提供了构建针对特定应用的 GPT Action 的指导。此 GPT Action 旨在连接至 Confluence(一个协作和文档平台),可以根据用户提问在相关的 Confluence 空间和页面中查找信息并返回回答。用户可以利用 ChatGPT 的自然语言能力与组织的知识库直接交互,支持知识工作者、项目经理和客户支持团队等角色高效获取信息,提高协作和知识共享的效率。
ChatGPT 连接 SQL 数据库指南
GPT Actions library - SQL Database
此指南为开发人员提供了如何通过中间件将 ChatGPT 连接到 SQL 数据库的流程。用户可以使用自然语言提问,ChatGPT 则通过执行 SQL 查询来获取信息,例子中使用了 PostgreSQL 数据库。中间件需提供 REST API 接口以接收和转发 SQL 查询,并将结果以 CSV 文件格式返回给 ChatGPT,支持用户查询数据而无需掌握 SQL 语法。该流程包括生成 SQL 查询、转发请求以及将结果转换为 CSV 格式,扩展了 ChatGPT 在数据分析方面的能力。
ChatGPT 与 Notion 集成指南
GPT Actions library - Notion
该文档提供了为特定应用程序构建 GPT Action 的指导,主要聚焦于如何连接 Notion。此 GPT Action 能够处理用户的问题,通过 Notion 的搜索功能扫描相关页面并返回匹配的信息。用户可以利用 ChatGPT 的自然语言处理能力直接查询 Notion,支持快速信息检索和知识合成,同时管理员可以管理页面的共享与访问。有多个应用场景,例如新员工的系统设置指导和支持代理的信息检索。
ChatGPT 邮件自动化助手
GPT Actions library - Gmail
该文档为开发者提供了构建 GPT Action 的指导,特别是连接 Google Gmail 的 API。通过该 GPT Action,用户可以读取、发送、列出和草拟邮件,有助于优化沟通流程和客户互动。此工具能够总结内部通信、提供即时客户支持,并通过邮件发送数据分析报告。用户需要在 Google Cloud 上启用 Gmail API,并配备 OAuth 2.0 凭证,实现与 Gmail 的直接交互。
ChatGPT 接入 Jira 的实现指南
GPT Actions library - Jira
本指南为开发者提供了如何构建 GPT Action 以连接 Jira(Atlassian 的项目和票务管理工具)的详细说明。该 GPT Action 支持用户读取和写入特定项目中的问题。用户可利用 ChatGPT 的自然语言能力来加载项目的最新问题、提供解决方案,并通过指令创建或修改问题及子任务。此外,文中提供了 OAuth 2.0 认证和 API 调用的详细步骤,以确保与 Jira 的顺利集成。
微调 GPT-4o mini 模型教程
How to fine-tune chat models
微调(fine-tuning)能够通过使用大量示例提升模型在多项任务上的表现。此教程详细介绍了 GPT-4o mini 模型的微调过程,采用 RecipeNLG 数据集进行实体提取。微调流程包括数据集加载、数据准备、创建训练及验证样本,并上传至接口。训练完成后,可以使用微调后的模型进行推理,提取食谱中的通用配料。最终可获取微调模型 ID 以进行后续应用。
服装匹配智能助手开发指南
How to combine GPT4o mini with RAG to create a clothing matchmaker app
该服装匹配应用程序展示了 GPT-4o mini 模型在分析服装图像及提取颜色、风格和类型等关键特征方面的强大能力。应用结合了自然语言处理和图像识别,实现了对衣物特征的准确识别,并通过自定义匹配算法和 RAG(检索增强生成)技术,提供个性化的推荐。使用该系统,用户可以获得基于服装特征的匹配建议,提升购物体验和时尚搭配效率。
GPT-4 图像标签与描述生成指南
Using GPT4o mini to tag and caption images
这篇文章介绍了如何利用 GPT-4 模型(如 gpt-4o-mini)对图像进行标签和描述生成。通过将图像与上下文信息提供给模型,能够生成相关标签和描述,并进一步优化为简洁的标题。文章中还演示了如何使用生成的关键词和描述进行图像搜索,尤其应用于电子商务领域,以提升搜索功能和推荐系统的效果。文章的技术方法还可以扩展到其他领域,例如利用非结构化图像数据的检索增强生成(RAG)应用。
多模态 AI 模型 GPT-4o 解析
Introduction to GPT-4o and GPT-4o mini
GPT-4o("o" 代表 "omni")和 GPT-4o mini 是原生多模态模型,能够处理文本、音频和视频输入,并生成文本、音频和图像格式的输出。GPT-4o mini 是 GPT-4o 的轻量版。 目前,该 API 仅支持 {文本,图像} 输入和 {文本} 输出,后续将引入音频功能。使用 GPT-4o mini 的过程中,可以通过 OpenAI SDK 等方式进行模型调用,输入图像并获取智能响应。模型可以从图像中提取信息,也可以处理视频帧和音频,显著提升多任务处理能力和理解深度。
ChatGPT 与 Salesforce 集成指南
GPT Actions library - Salesforce
该文档为开发者提供了构建与 Salesforce Service Cloud 连接的 GPT Action 的指南。使用该 GPT Action,用户可以直接从 ChatGPT 中提取和更新案例数据,进而提高响应客户的速度和一致性。文中详细介绍了 API 的结构、身份验证步骤以及自定义 GPT 的创建过程,以帮助开发者快速实现与 Salesforce 的集成。
ChatGPT 与 Outlook 集成指南
GPT Actions library - Outlook
该文章介绍了如何为特定应用构建一个 GPT Action,以连接到 Microsoft 的 Outlook 服务,实现与电子邮件和日历事件的交互。用户可以通过该 GPT Action 使用自然语言发送和检索电子邮件及日历事件,利用 Microsoft Graph API (微软图形 API)实现高效的沟通与日程管理。使用场景包括查看日程总结及直接发送 ChatGPT 生成的电子邮件。设置过程包括应用注册、客户端安全设置和 API 权限配置。
ChatGPT 天气 API 接入指南
GPT Actions library - getting started
本指南为开发者构建 GPT Action 提供了详细说明,尤其是连接 Weather.gov 的天气预报功能。用户可以通过输入经纬度或地标信息获取天气预报,本 API 无需身份验证。此功能帮助用户基于天气模式进行日常计划,快速可视化天气数据。相关应用链接包括官网和 API 文档,使用过程中可以借助指定的 API 获取所需的天气信息。
ChatGPT 与 BigQuery 集成指南
GPT Actions library - BigQuery
该文章介绍了如何为特定应用构建一个 GPT Action,使其能够连接到 Google BigQuery 数据仓库。该 Action 接收用户提问,查询相关数据表,构建 SQL 语句以回答问题。用户可以利用 ChatGPT 的自然语言能力,进行数据分析和查看数据异常。文中包括了创建和设置的详细步骤,以及 OAuth 认证的配置说明。整体流程强调了如何将用户的查询转化为可执行的 SQL 查询,并返回查询结果。
GPT-4o 数据提取与转换新方案
Data Extraction and Transformation in ELT Workflows using GPT-4o as an OCR Alternative
企业数据通常是非结构化的,常见格式如 PDFs、PPT 和 PNG,这些格式不适用于 LLMs(大语言模型)和数据库,导致分析和产品开发中被低估。传统的信息提取方法是使用 OCR(光学字符识别),但对复杂布局支持有限。GPT-4o 的多模态能力可以从多种文档中提取和转换数据,支持多语言处理。本文介绍了如何使用 GPT-4o 提取德国酒店发票数据,并将其转化为适合数据库格式的 JSON,以便后续分析和查询。
Azure AI Search 与 ChatGPT 集成教程
Azure AI Search with Azure Functions and GPT Actions in ChatGPT
本教程详细介绍了如何使用 Azure AI Search(前称 Azure Cognitive Search)作为向量数据库,结合 OpenAI 的嵌入技术,并在此基础上创建 Azure Function,以便将其集成到 ChatGPT 的自定义 GPT 中。Azure AI Search 提供了强大的 API 和工具,便于开发人员在各种应用中构建丰富的搜索体验。通过步骤指导,用户可以设置 RAG(检索增强生成)基础设施,并通过 Azure 函数实现与 ChatGPT 的无缝对接,探索如何使用向量搜索和传统关键字搜索提升查询的相关性和准确性。
大型语言模型输出防护机制探讨
Developing Hallucination Guardrails
本文介绍了如何构建大型语言模型(LLM)的输出防护机制,确保其生成结果的准确性和合适性。主要内容包括:创建强大的评估集,识别评估模型结果的具体标准,如“幻觉”,并通过少量示例提示改进防护机制的准确性。此外,文章展示了如何生成客户交互示例,并对聊天机器人响应进行验证,确保其遵循公司政策并准确反映知识库内容。最后,评估防护系统的表现,通过高精确度和召回率指标表明该系统有效识别了模型输出中的幻觉现象。
ChatGPT 在 SharePoint 的应用指南
GPT Actions library - Sharepoint (Return Docs)
该文档提供了为特定应用构建 GPT Action 的开发者指南。通过使用 Microsoft Graph API 和 Azure Functions,开发者可以实现 ChatGPT 在 SharePoint 或 Office 365 中访问用户可见文件并回答问题。此解决方案可以处理结构化和非结构化数据,但存在大小限制。用户能通过自然语言直接连接文件,解决信息检索等需求。设置过程中需完成身份验证和依赖包的安装,并按需定制代码以满足特定需求。
SharePoint 文档智能搜索方案
GPT Actions library - Sharepoint (Return Text)
此技术文档提供了开发者如何为特定应用构建 GPT Action 的指导。该解决方案允许用户通过 Microsoft Graph API 在 SharePoint 或 Office365 中搜索可访问的文件,并利用 Azure Functions 处理响应,将文件内容转换为人类可读的文本。适用于处理大型非结构化文档,并且用户可以利用 ChatGPT 的自然语言处理能力快速查找相关信息。用户可以在 SharePoint 环境中提问,系统将返回最相关的文档片段。此方案特别适合需要在深层文档中查找关键信息的场景。
ChatGPT 与 Azure Functions 集成指南
GPT Actions library (Middleware) - Azure Functions
该文章提供了关于如何构建中间件以连接 GPT Action 和特定应用程序的详细指南。重点介绍了如何创建和设置 Azure Function,以便通过 OAuth 保护连接到 GPT Action,方便用户利用 ChatGPT 的自然语言处理能力。主要用例包括连接 SharePoint 文件和触发 Azure Function 过程。同时,提供了连接和测试该功能的步骤,以确保在应用程序和 ChatGPT 之间的集成能够成功进行。
客服工具调用优化策略
Using tool required for customer service
ChatCompletion 端点现已具备要求每次都调用工具的能力,通过添加参数 tool_choice='required'。这使得开发者可以确保每次调用都有工具被提供,增强了应用程序的确定性。该功能特别适合客户服务等场景,可以更好地定义特定的退出点,从而提供更高的控制力。示例中,通过定义工具和指令,LLM 客服助手能够有效地处理客户问题,并进行多轮对话以达到解决方案。
Batch API 异步批量处理指南
Batch processing with the Batch API
新的 Batch API 允许创建异步批量作业,降低成本并提高速率限制。作业将在 24 小时内完成,实际处理时间可能更短。典型应用场景包括在市场或博客上标记、描述或丰富内容,分类和建议支持票的答案,分析客户反馈的大数据集进行情感分析,以及文档或文章的摘要和翻译等。使用 Batch API 可以显著降低成本,推荐将可异步处理的工作负载切换到该 API。
长文档的精准摘要技巧
Summarizing Long Documents
该笔记本演示了如何在可控细节水平下对大型文档进行摘要。通过将长文本分割成多个片段,再逐个生成摘要,最后汇总这些摘要,可以实现更精准的细节控制。使用 OpenAI 的 GPT 模型,可以根据需要选择摘要的详细程度,从而获得从简洁到详尽的不同版本。整个流程可以通过调整文本块数量和大小,以实现对输出摘要的细节层次进行精细控制。
合成数据生成全攻略
Synthetic data generation (Part 1)
利用大型语言模型(LLMs)生成合成数据是一种有效的解决方案,可以解决高质量、多样且符合隐私规范的数据供应问题。合成数据可用于训练机器学习模型(如 SVM、决策树、KNN)、微调其他 GPT 模型、解决冷启动问题以及进行场景测试等。在多个领域,如人类数据可能存在隐私限制时,合成数据更易于处理和操作,增强数据的多样性与丰富性。教程分为两部分,涵盖生成结构化 CSV 文件、利用 Python 程序生成数据、创建文本描述,以及处理不平衡或多样性不足的文本数据等。
CLIP 嵌入提升多模态 RAG 表现
CLIP embeddings to improve multimodal RAG with GPT-4 Vision
Multimodal RAG(检索增强生成模型)通过引入额外的模态数据,提升了大语言模型(LLM)在问答任务中的表现。采用图像直接嵌入而非文本描述的方法,避免了信息损失,提高了检索的准确性。使用基于 CLIP 的嵌入可以进行数据微调或更新未知图像。该技术示例展示了如何通过用户提供的技术图像从企业知识库中检索相关信息,并提供准确答案。
GPT-4 视觉与函数调用应用探索
Using GPT4 Vision with Function Calling
新推出的 GPT-4 Turbo 模型(gpt-4-turbo-2024-04-09)支持视觉能力的函数调用,具备更强的推理能力,并且知识截止日期为 2023 年 12 月。通过图像与函数调用的结合,拓展了多模态应用场景,实现了比光学字符识别(OCR)和图像描述更复杂的功能。文章中展示了如何利用该模型模拟客户服务助理处理快递异常和分析组织结构图提取员工信息,包括系统安装、图像编码、订单处理和组织结构解析等关键步骤。
OpenAI Evals 框架入门指南
Getting Started with OpenAI Evals
OpenAI Evals 框架用于评估大型语言模型(LLM)的输出,包含评估库、开源挑战性评估的注册表。评估过程验证和测试 LLM 应用的输出质量,提高应用的稳定性和可靠性。创建高质量评估(evals)是开发 AI 解决方案的重要环节,能有效了解模型版本和提示对使用案例的影响。框架支持自定义的评估模板和简化的评估创建流程,适用于测试 SQL 生成等多种场景。通过命令行工具可以轻松运行评估并生成详尽报告。
内容审查 API 使用指南
How to use the moderation API
本指南提供了针对语言模型(LLM)应用程序中内容审查的深入分析,重点介绍了输入审查和输出审查的技术。输入审查可识别和标记不当或有害内容,输出审查则确保生成的内容符合安全标准。使用 OpenAI 的 Moderation API,开发者可以在内容进入 LLM 或显示给用户之前进行检测。此外,自定义审查允许更精细的内容过滤,以满足特定社区标准。这些技术确保了应用程序的内容安全性和用户的积极体验。
PDF 文档解析与 RAG 应用指南
How to parse PDF docs for RAG
该笔记本展示了如何利用 GPT-4V 将包含丰富信息的 PDF 文档(如幻灯片或网页导出)转化为可用于检索增强生成(RAG)应用程序的内容。可针对大量包含有价值信息的非结构化数据进行处理,搭建能够回答用户关于公司或产品相关问题的知识助手。处理步骤包括数据准备、PDF 文本提取或将 PDF 转换为图像以进行分析,并使用 OpenAI 的 GPT-4V 进行图像内容分析、信息嵌入及基于检索结果生成输出回复。此流程适用于多种实际应用场景。
提升 ChatGPT 输出可信度的 logprobs 应用指南
Using logprobs
本笔记本介绍了 Chat Completions API 中 logprobs 参数的使用。当启用 logprobs 时,API 会返回每个输出标记的对数概率,以及每个标记位置上几个最可能的标记及其对数概率。这使得用户能够评估模型输出的置信度,并探索模型考虑的替代响应。logprobs 可应用于分类任务、检索评估、自我评估和自动补全等场景,帮助提高模型的准确性和可靠性。通过对输出进行详细分析,开发者能够优化应用程序并减少生成错误。
大语言模型应用防护指南
How to implement LLM guardrails
实现 LLM(大语言模型)应用的防护措施有助于优化性能,确保应用的正常运行。防护措施分为输入防护和输出防护,前者在内容到达 LLM 前进行拦截,后者则在 LLM 输出结果时进行验证。在设计防护措施时,需权衡准确性、延迟和成本,并考虑潜在风险。通过采用异步设计可以提高系统的响应效率。此外,监测和优化防护措施的效果,有助于提升用户体验,防止不当内容传播。
AI 驱动的幻灯片制作秘籍
Creating slides with the Assistants API and DALL·E 3
该技术文章展示了如何利用新的 Assistants API (GPT-4) 和 DALL·E-3 创建专业且吸引人的幻灯片。通过自动化幻灯片制作过程,用户无需使用 Microsoft PowerPoint 或 Google Slides,从而节省时间和精力。文章提供了如何处理财务数据,利用助手计算利润并生成可视化图表的示例,最后结合 DALL·E-3 创建幻灯片标题图像。整体流程突显了 AI 在提升工作效率中的潜力。
图数据库驱动的智能推荐系统
RAG with a Graph database
本文介绍如何结合大型语言模型(LLMs)与图形数据库 Neo4j 实现检索增强生成(Retrieval Augmented Generation, RAG)。通过在数据库中提取相关信息,可以生成基于用户内容的答案,从而减少模型幻觉并提供最新信息。图形数据库适用于处理数据点之间关系重要的场景,如推荐系统和客户行为分析。本示例构建了一个基于亚马逊产品数据的产品推荐聊天机器人,展示了如何连接数据库、导入数据并执行查询,以实现智能推荐功能。
Supabase 向量数据库探秘
Supabase Vector Database
Supabase 是一个开源的 Firebase 替代品,建立在生产级 SQL 数据库 Postgres 之上。Supabase Vector 是基于 pgvector 的向量工具包,支持在同一个数据库中存储嵌入(embeddings),并结合 pgvector 的索引算法,能够在大规模下快速进行向量搜索。此外,Supabase 提供自动生成的 REST APIs、GraphQL APIs、实时 APIs、身份验证、文件存储和边缘功能,这些服务可以与 pgvector 共同使用,实现嵌入存储和查询。
Supabase 向量语义搜索指南
Semantic search using Supabase Vector
使用 Supabase Vector 进行语义搜索的方法是首先将 OpenAI 的 embeddings 存储在 Supabase Vector(基于 Postgres 和 pgvector)中。Supabase Vector 支持大型向量数据的快速搜索。该指南涵盖了数据库设置、SQL 表创建、使用 OpenAI JavaScript 客户端生成 embeddings、将 embeddings 存储到 SQL 表中,以及使用 Postgres 函数进行语义搜索的步骤。通过创建匹配函数和使用 REST API,用户可以高效地查询相似度高的文档。
MongoDB Atlas 向量搜索服务
MongoDB Atlas Vector Search
Atlas Vector Search 是一个完全托管的服务,简化了在 MongoDB 中有效索引高维向量数据的过程,并能够快速执行向量相似性搜索。用户可以将 MongoDB 作为独立的向量数据库用于新项目,或增强现有的 MongoDB 集合以添加向量搜索功能。该服务支持在主要公共云(如 AWS、Azure 和 GCP)中使用,提供大规模扩展性和数据安全性,同时具备企业级合规性,如 FedRamp 和 SoC2。
MongoDB Atlas 和 OpenAI 语义搜索构建指南
Semantic search using MongoDB Atlas Vector Search and OpenAI
该笔记本介绍了如何使用 OpenAI 和 MongoDB Atlas 构建语义搜索应用程序。首先,在 MongoDB Atlas 中创建一个集群并生成 OpenAI API 密钥,然后设置环境并加载示例数据集。通过 OpenAI 的嵌入生成 API 将 "plot" 字段中的文本转换为向量嵌入,并将这些嵌入存储在数据库中。接着,创建向量搜索索引以进行近似 KNN 搜索,最终实现对与查询文本语义相似电影的搜索功能。
Assistants API 开发指南与应用
Assistants API Overview (Python SDK)
新的 Assistants API 是 Chat Completions API 的一种状态化进化,旨在简化助理类体验的创建,并使开发者能够访问强大的工具,如 Code Interpreter(代码解释器)和 Retrieval(检索)。Assistants API 的基本组件包括 Assistants(助理)、Threads(线程)和 Runs(运行)。相较于无状态的 Chat Completions API,Assistants API 允许开发者轻松管理会话状态,并通过多步骤操作和工具使用实现更复杂的功能。此外,API 支持 Python SDK 更新、工具调用和用户自定义函数功能,为开发者提供了更丰富的交互式体验。
函数调用模型微调技巧
Fine tuning for function calling
该笔记本介绍了如何进行模型微调以提高函数调用的准确性和可靠性。函数调用是一种强大的工具,但在函数数量和任务复杂性增加时,准确性会下降。为了解决这个问题,建议首先改进函数定义和尝试提示工程。微调的过程包括评估基线性能、生成合成数据和实际运行微调作业。使用合成训练数据是提高性能的重要一步,最终通过微调后的模型在处理复杂请求时显示出更高的准确性。
视频处理与解说的 GPT 应用指南
Processing and narrating a video with GPT's visual capabilities and the TTS API
该笔记本展示了如何利用 GPT 的视觉能力处理视频。虽然 GPT-4o 不能直接接受视频作为输入,但可以借助 v ision 和 128K 上下文窗口来描述整个视频的静态帧。提供的两种示例包括:使用 GPT-4o 生成视频描述,以及通过 GPT-4 和 TTS API 为视频生成语音解说。示例中使用 OpenCV 提取视频帧,并向 GPT 发送请求以获取引人注目的描述和解说脚本,最终通过 TTS API 创建音频文件。
DALL·E 3 新特性探秘
What's new with DALL·E 3?
DALL·E-3 是最新的文本到图像生成模型,能够高质量地生成各种领域的图像。它的新特性包括使用 GPT-4 优化提示的“提示重写”、可调整的图像质量(标准与高清)、新增的自然和生动风格、以及多种图像尺寸(1024x1024、1792x1024、1024x1792)。当前仅支持生成(Generations)API,尚未支持变体或修补。用户可以利用这些新功能生成定制图标、标志以及个性化的纹身和贴纸。
模型输出一致性新方法
How to make your completions outputs consistent with the new seed parameter
开发者现在可以在 Chat Completion 请求中指定 seed(种子)参数,以便获得相对一致的输出。此外,系统引入 system_fingerprint(系统指纹)字段,帮助追踪系统更改带来的输出差异。要实现模型的稳定输出,需在请求中使用相同的 seed 值,并保持其他参数一致(如 prompt、temperature 等)。这一特性目前处于测试阶段,仅支持 gpt-4-1106-preview 和 gpt-3.5-turbo-1106 模型。
RAG 系统评估与 LlamaIndex 应用
Evaluate RAG with LlamaIndex
构建 RAG (Retrieval Augmented Generation,检索增强生成)管道并使用 LlamaIndex 进行评估的过程涵盖了三个主要部分:理解 RAG、构建 RAG 和评估 RAG。RAG 通过在生成过程中实时利用特定数据,提升了大型语言模型(LLM)对上下文的响应能力,步骤包含数据加载、索引创建、存储、查询和评估。使用 LlamaIndex,可以构建索引并执行查询,同时通过多种评估模块测量检索和生成的准确性与相关性,从而优化 RAG 系统的性能。
命名实体识别与文本丰富化
Named Entity Recognition to Enrich Text
命名实体识别(Named Entity Recognition, NER)是自然语言处理(Natural Language Processing, NLP)中的关键任务,旨在识别并分类文本中的命名实体(NE),如人物、组织、地点、事件等。通过将原始文本转换为结构化信息,NER 有助于信息提取、数据聚合和社交媒体监测等多种应用。该文中展示了如何通过调用 OpenAI 的 API 来实现 NER,并将文本与知识库(例如维基百科)的链接进行丰富。
GPT 调用 API 的新纪元
Function calling with an OpenAPI specification
大部分互联网服务是通过 RESTful APIs 支持的,赋予 GPT 调用这些 API 的能力将开辟无数可能性。文章展示了如何利用 OpenAPI 规范和链式函数调用,使 GPT 智能地调用 API。内容包括将示例 OpenAPI 规范转换为功能定义,并使用这些定义通过 chat completions API 根据用户指令进行调用。此外,针对 API 的定义与请求,提供了解析和调用的实现方法。该系统可扩展性强,适合处理更复杂的用户指令。
OpenAI Node.js 代理应用构建指南
How to build an agent with the OpenAI Node.js SDK
使用 OpenAI 的 Node.js SDK 构建代理应用,可以增强应用的功能使其不仅是一个简单聊天机器人。文章介绍了如何创建一个能够根据用户地点和当前天气推荐当地活动的简单代理。通过利用 `getLocation()` 和 `getCurrentWeather()` 函数,代理可实时获取用户的位置信息和天气状况。文章提供了详细的代码示例和步骤,包括如何导入 SDK、设置函数、构建聊天消息数组,以及实现逻辑循环来处理 OpenAI 的响应。最终,用户可以得到与其位置和天气相匹配的活动推荐。
OpenAI 模型微调与 W&B 集成指南
Fine-tuning OpenAI models with Weights & Biases
通过使用 OpenAI API 进行 ChatGPT-3.5 的微调,结合 Weights & Biases (W&B) 的集成,可以高效跟踪实验、模型和数据集。首先,需要准备法律数据集,并将其格式化为适合 ChatCompletion 模型的格式。接着,利用 W&B 记录训练和测试数据,上传数据并启动微调任务。评估微调后的模型时,可以与基础模型进行比较,记录准确率等性能指标。这一流程推动了自定义生成模型的开发,并能为后续更复杂的任务奠定基础。
OpenAI API 实时监控指南
OpenAI API Monitoring with Weights & Biases Weave
该文介绍了如何使用 W&B(Weights & Biases)集成 OpenAI API 进行 LLM(大型语言模型)使用监控。用户可以自动追踪 API 调用的成本、延迟和吞吐量等关键指标,动态查询日志,分析数据并生成可视化仪表板。通过此流程,用户可以简便地配置并探索 OpenAI API 的调用情况,实现实时数据监控与团队协作。
LangChain 与 Deep Lake 问答系统探索
Question answering with LangChain, Deep Lake, & OpenAI
该笔记本展示了如何使用 LangChain、Deep Lake 作为向量存储和 OpenAI 嵌入实现问答系统。流程包括加载 Deep Lake 文本数据集、初始化 Deep Lake 向量存储、添加文本、在数据库上运行查询。使用 OpenAI 的 text-embedding-3-small 作为嵌入函数,并通过 RetrievalQA 搭建问答链。在该实现中,用户可以对 Deep Lake 存储的数据进行高效查询。
向量数据库的云端解决方案
Neon as a vector database
Neon 是专为云构建的无服务器 Postgres,支持计算和存储分离,具备自动扩展、数据库分支及缩放到零的功能。利用 pgvector 开源扩展,Neon 作为向量数据库,可存储和查询嵌入(embeddings)。其支持快速读取副本和低延迟驱动,提升 AI 应用的可扩展性。在使用 OpenAI API 生成的嵌入时,可实现文本查询到嵌入的转换及向量相似度搜索。
Neon Postgres 向量相似性搜索指南
Vector similarity search using Neon Postgres
使用 Neon Serverless Postgres 作为 OpenAI 的向量数据库,可存储和查询通过 OpenAI API 生成的嵌入(embeddings)。该指南包括创建连接字符串、安装所需模块、加载预计算的维基百科文章嵌入、建立数据表及索引,并使用 pgvector 执行向量相似性搜索。搜索过程通过用户输入的查询生成嵌入,与数据库中存储的数据进行匹配,返回相似度最高的结果。
ChatGPT 自动化 AWS S3 管理指南
How to automate AWS tasks with function calling
该代码展示了如何与 ChatGPT 函数交互,以执行与 Amazon S3 虚拟存储桶相关的任务。涵盖的功能包括列出存储桶、搜索特定文件、上传和下载文件。使用者需要生成 AWS 访问密钥并配置环境文件。代码通过调用 OpenAI Chat API,根据用户输入自动生成自然语言响应,并执行恰当的函数调用。此实现使用户可以通过简洁的对话接口高效管理 S3 存储。
Azure 聊天模型自定义应用指南
Azure Chat Completion models with your own data (preview)
Azure OpenAI 服务支持在用户自己的数据上运行模型,带来更高的对话精度和速度。用户可以利用 GPT-3.5-Turbo 和 GPT-4 等聊天模型,结合 Azure AI Search 提供自定义的知识检索解决方案。通过合理配置和身份验证,模型能够精确引用特定数据源的信息,从而避免生成过时或不准确的回复。该特性为构建基于对话的 AI 应用奠定了基础。
Azure AI Search 与 OpenAI 嵌入集成指南
Azure AI Search as a vector database for OpenAI embeddings
使用 Azure AI Search(原称 Azure Cognitive Search)作为矢量数据库,与 OpenAI 嵌入集成,能够为开发者提供构建丰富搜索体验的基础设施和工具。本文详细介绍了如何设置 Azure AI Search 服务、OpenAI 认证及如何通过 Python SDK 创建并配置搜索索引。同时,示范了如何上传带嵌入的文档数据,并执行纯矢量搜索和混合搜索,以提高搜索结果的相关性与准确性。
Tair 构建 OpenAI 向量数据库指南
Using Tair as a vector database for OpenAI embeddings
本笔记本逐步指导如何将 Tair 用作 OpenAI 的向量数据库。主要内容包括使用 OpenAI API 创建的预计算嵌入,将其存储在 Tair 云实例中,并通过 OpenAI API 将原始文本查询转换为向量,以在创建的集合中执行最近邻搜索。Tair 是阿里云开发的云原生内存数据库,支持多种数据模型和高性能向量存储,广泛应用于政府、金融、制造等领域。TairVector 提供高效的向量检索和实时索引更新,降低延迟。
Langchain Tair OpenAI 问答系统构建指南
Question answering with Langchain, Tair and OpenAI
该笔记本展示了如何使用 Langchain、Tair 作为知识库以及 OpenAI 的嵌入实现问答系统。主要过程包括:使用 OpenAI API 计算文本的嵌入,存储在 Tair 中以构建知识库,将原始查询转换为嵌入,利用 Tair 执行最近邻搜索以查找上下文,以及在给定上下文中请求 LLM(大型语言模型)寻找答案。所有步骤通过调用相应的 Langchain 方法简化,前提条件包含 Tair 云实例、Langchain 框架和 OpenAI API 密钥。
微调 RAG 模型与 Qdrant 集成指南
Fine-Tuning for retrieval augmented generation (RAG) with Qdrant
本笔记本介绍了如何微调 OpenAI 模型以实现检索增强生成(RAG),并集成了 Qdrant 和少量学习(Few-Shot Learning)以提升模型性能,减少幻觉(hallucinations)。通过使用 SQuAD 数据集的子集,模型通过零-shot 和 few-shot 学习来回答问题,并逐步提高正确性。对比评估显示,经过微调的模型在回答问题时表现出更高的准确率和更低的幻觉率。此外,Qdrant 的应用帮助模型在不同场景下做出更加保守或自信的回答。最终,结合 Qdrant 的少量学习微调显著增强了模型在面对未知或不确定答案时的表现。
提升文档质量的关键要素
What makes documentation good
好的文档应该能有效传达有用信息,便于不同水平的读者理解。编写文档时,可以通过清晰的标题、简洁的段落和前置重点来提升可读性。使用项目符号和表格,使信息更易于快速查找。避免使用模糊的指示代词和复杂句子,保持简单和一致,使文档更具吸引力。此外,应避免使用缩写,并提供潜在问题的解决方案,以便帮助所有读者,特别是初学者。最后,根据价值优先排序内容,确保覆盖常见问题。
向量嵌入与哲学名言生成器
Philosophy with vector embeddings, OpenAI and Cassandra / Astra DB
使用 OpenAI 的向量嵌入(vector embeddings)和 Apache Cassandra® 或 DataStax Astra DB,通过 CQL 构建一个“哲学名言查找与生成器”的示例。文章介绍了数据的索引、存储和检索方法。首先,将名言转化为嵌入向量存储,随后可通过相似搜索找到相关名言,或基于查询生成新名言。该过程包括设置数据库连接、加载名言、创建并查询向量表等步骤,展示了如何高效利用向量搜索和生成技术。
向量嵌入助力哲学名言生成与搜索
Philosophy with vector embeddings, OpenAI and Cassandra / Astra DB
使用 OpenAI 的向量嵌入和 Apache Cassandra®(或 DataStax Astra DB)构建哲学名言搜索引擎和生成器。该流程包括提取哲学名言的向量嵌入,存储于向量存储中,然后可用于相似名言搜索及新名言生成。文中介绍了库 CassIO 的使用以及如何连接数据库、加载数据,并实现搜索和生成功能,展示了机器学习和生成智能在处理文本数据方面的应用潜力。
Astra DB 向量搜索实战指南
Cassandra / Astra DB
这个目录中的示例演示了如何使用 DataStax Astra DB 中的向量搜索 (Vector Search) 功能,该服务基于 Apache Cassandra® 构建,并提供无服务器的数据库即服务 (Database-as-a-Service)。示例笔记本展示了不同库和 API 中实现相同的 GenAI 标准 RAG 工作负载的方法。用户可以选择使用 HTTP API 接口或 CQL 访问数据库,具体可以参考 “AstraPy” 笔记本或 “CQL” 和 “CassIO” 笔记本。
Elasticsearch 与 OpenAI 应用整合指南
Elasticsearch
Elasticsearch 是一个流行的搜索/分析引擎和向量数据库,能够高效地创建、存储和搜索大规模的向量嵌入。该平台支持 OpenAI 的应用,用户可以通过提供的 Python 笔记本进行测试。在语义搜索方面,用户可以将 OpenAI 的维基百科嵌入数据集索引到 Elasticsearch,并使用 openai ada-02 模型编码问题。该文档还介绍了如何进行检索增强生成(Retrieval Augmented Generation, RAG)操作。
Elasticsearch 与 OpenAI 强化生成实践
Retrieval augmented generation using Elasticsearch and OpenAI
本笔记本演示了如何将 OpenAI 维基百科向量数据集索引到 Elasticsearch,并使用 OpenAI 的 embeddings 端点对问题进行嵌入。通过对 Elasticsearch 索引执行语义搜索,并将前几名的搜索结果发送给 OpenAI Chat Completions API 进行增强生成(RAG)。步骤包括连接 Elasticsearch、下载数据集、创建索引及其映射、将数据批量索引到 Elasticsearch,以及借助 OpenAI 模型对查询结果进行处理。最终,可以使用生成的文本回答用户提出的问题。
OpenAI 与 Elasticsearch 的语义搜索探索
Semantic search using Elasticsearch and OpenAI
该笔记本演示了如何将 OpenAI 维基百科向量数据集索引到 Elasticsearch,并使用 OpenAI 的嵌入端点进行问题嵌入。通过建立与 Elasticsearch 的连接,用户下载安装所需的库,下载数据集,并利用 Pandas 将 CSV 文件读入 DataFrame。接着,创建适合的索引映射以支持语义搜索,最后使用 OpenAI 的嵌入模型对查询进行编码,并执行基于邻近搜索(kNN)的查询。这一过程允许用户有效利用 Elasticsearch 进行语义搜索和数据检索。
聊天模型微调的数据准备与分析
Data preparation and analysis for chat model fine-tuning
该笔记本用于预处理和分析用于微调聊天模型的聊天数据集。它检查格式错误,提供基本统计信息,并估算微调成本的 token(标记)数量。通过加载 JSONL 文件,可以验证数据集格式,检查每个对话的支持角色和内容。此外,进行数据警告分析,识别关键的缺失消息以及计算 token 数量并提供统计分布。最后,估算整个数据集的 token 数量,以帮助评估微调成本。
摘要评估技术的新进展
How to evaluate a summarization task
本文讨论了用于抽象文本摘要评估的不同技术,包括传统指标 ROUGE 和 BERTScore,以及利用大型语言模型(LLMs)作为评估工具的新方法。传统自动评估指标虽然可靠,但与人类评估的相关性较低,尤其在开放式生成任务中。相较之下,基于 LLM 的方法(如 G-Eval)能够进行无参考的质量评估,关注摘要的相关性、连贯性、合规性和流畅性。这一领域的持续进展旨在提升摘要质量评估的效率与可靠性。
基于位置的个性化地点推荐
Function calling for nearby places: Leveraging the Google Places API and customer profiles
该笔记本集中于整合 Google Places API 和用户个人资料,以增强基于位置的搜索。通过结合用户偏好和 Google Places API,实现更个性化的地点发现。主要内容包括用户资料的建立,利用 Google Places API 提供实时地点数据,以及通过简单命令激活函数以识别合适场所。同时,介绍了如何根据用户资料进行推荐,以及如何调用 API 获取附近的相关场所。
转录准确性的双重策略
Addressing transcription misspellings: prompt vs post-processing
为了提高转录的准确性,尤其是公司名称和产品引用,采用了双重策略:利用 Whisper 的提示参数和 GPT-4 的后处理能力。首先,通过将正确拼写的名称列表直接输入 Whisper 的提示中,指导初步转录。接着,利用 GPT-4 修正转录后的拼写错误,确保不熟悉的专有名词准确无误。虽然此技术可处理更多的产品名称,但其效率受限于上下文窗口,可能对拥有大量 SKU 的公司造成挑战。此外,使用 GPT-4 后处理虽然提升了转录的可靠性,但成本和延迟也有所增加。
Whisper 转录质量提升指南
Enhancing Whisper transcriptions: pre- & post-processing techniques
本指南旨在通过音频数据的修剪和分段,提高 Whisper 的转录质量。使用 PyDub 库检测并修剪音频中的静音,随后利用 OpenAI API 进行转录。转录后,通过添加标点符号、调整金融产品术语(如将“five two nine”改为“529”)、处理 Unicode 问题来优化输出。最终生成的转录文本将更清晰易懂,适合具体应用场景需求。
Azure 函数调用实践指南
Azure functions example
该笔记本展示了如何使用 Azure OpenAI 服务中的函数调用功能。通过定义函数,模型可以将其功能扩展到外部工具和数据源中。需要注意的是,函数调用功能仅支持 gpt-4 和 gpt-35-turbo -0613 版本及以上。文章详细介绍了环境设置、身份验证(支持 API 密钥和 Azure Active Directory)、创建模型部署,以及通过聊天完成功能调用外部函数。用户可以自定义函数,并通过 API 与模型进行交互,获取并处理函数的响应。
Kangas 嵌入可视化实用指南
Visualizing the embeddings in Kangas
Kangas 是一个开源的混合媒体数据框工具,旨在帮助数据科学家将模型快速投入生产。使用 Kangas 可以构建包含数据和嵌入的 DataGrid,通过读取 CSV 文件,将包含评分和综述的食品评论数据转化为嵌入格式。通过可视化展示,用户可以直接查看以二维形式呈现的嵌入及其评分。在数据处理和分析中,Kangas 提供了便捷的操作,支持对数据进行分类和排序。
PolarDB-PG 与 OpenAI 嵌入集成指南
Using PolarDB-PG as a vector database for OpenAI embeddings
PolarDB-PG 是一种高性能向量数据库,采用读写分离架构,由阿里云管理,完全兼容 PostgreSQL。它支持存储大量向量数据,并通过优化底层执行算法提高计算效率。该文档提供了使用 PolarDB-PG 进行 OpenAI 嵌入的数据处理步骤,包括预计算嵌入的存储、查询文本转换为嵌入以及最近邻搜索等操作。用户需要配置必要的环境变量和库,之后可通过 Python 代码实现数据索引和检索。
搜索结果重新排序新策略
Search reranking with cross-encoders
该文介绍了如何使用 cross-encoder 重新排序搜索结果,这是在语义搜索中提高结果准确度的一种方法。通过 bi-encoder 生成嵌入(embeddings),可以快速识别出顶级候选文档,然后利用 cross-encoder 进一步精确排序。由于 cross-encoder 的计算复杂度高,适合对少量候选文档进行详细评估。文中演示了使用 GPT 模型构建 cross-encoder 进行文档 relevancy 判断的实例,并提供了实际应用示例。最终,通过该方法,能够更好地满足特定领域用户的需求。
向量数据库与语义搜索解析
Vector databases
向量数据库(vector databases)是支持语义搜索的有力工具,能够为知识检索应用提供相关上下文,从而减少语言模型(LLM)的幻觉现象。该部分介绍了多种可用的向量数据库,每个提供商都有自己的目录和标准笔记本,指导用户如何使用其 API 及展示功能的补充笔记本。
Chroma 嵌入搜索实战指南
Using Chroma for embeddings search
本笔记本展示了如何下载数据、进行嵌入,并使用向量数据库进行索引和搜索。向量数据库(Vector Database)用于存储和管理嵌入向量,能够有效支持聊天机器人、主题建模等生产场景。通过一步步演示,用户将学习如何设置并使用向量数据库,利用 OpenAI 嵌入功能与 Chroma 数据库结合进行语义搜索。这为企业提供了安全、可扩展的解决方案,帮助解决各种实际应用问题。
MyScale 嵌入搜索入门指南
Using MyScale for embeddings search
该笔记本介绍了如何下载数据、进行嵌入处理,并利用多种向量数据库进行索引和搜索。这一流程适用于希望在安全环境中存储和搜索嵌入数据的客户,常见应用包括聊天机器人和主题建模等。 向量数据库(Vector Database)专为存储、管理和搜索嵌入向量而设计,支持对非结构化数据(如文本、音频视频)进行有效编码。MyScale 是一个基于 Clickhouse 的向量数据库,支持结构化和向量数据的联合查询。通过本指南,用户可以学习如何嵌入文本数据、存储到向量数据库,以及使用语义搜索。
Pinecone 嵌入搜索全攻略
Using Pinecone for embeddings search
本教程介绍了如何下载数据、进行嵌入,并使用向量数据库(vector database)进行索引和搜索。向量数据库专为存储和管理嵌入向量而设计,适用于处理文本、音频、视频等非结构化数据。使用向量数据库可以安全、可扩展地部署聊天机器人、主题建模等场景。流程包括数据加载、在 Pinecone 中创建索引,并通过查询测试嵌入数据的搜索效果。
Qdrant 嵌入搜索实战指南
Using Qdrant for embeddings search
该笔记本展示了如何下载数据、进行嵌入,并使用向量数据库(vector database)进行索引和搜索。向量数据库专为存储和管理嵌入向量而设计,适合处理非结构化数据,如文本和音频。它们帮助企业在安全、可扩展的环境中实现诸如问答系统和推荐服务等用例。通过设置 Qdrant 数据库,用户可以将嵌入数据存储、查询,并进行语义搜索,适用于生产环境。
Redis 驱动的嵌入搜索实践
Using Redis for embeddings search
本笔记本展示了如何使用向量数据库(Vector Database)下载、嵌入和索引数据,以便进行搜索。这种需求常见于希望在安全环境中存储和搜索嵌入数据的企业,支持如聊天机器人和主题建模等生产用例。向量数据库可以有效管理和搜索编码为向量的非结构化数据(例如文本、音频和视频),提高 AI 在自然语言处理和图像识别等领域的应用效率。通过 Redis 设置、索引数据并执行查询,用户可快速实现嵌入的文本数据管理和语义搜索。
Typesense 嵌入向量搜索实践
Using Typesense for embeddings search
本笔记本展示了如何下载数据、进行嵌入并使用向量数据库进行索引和搜索。向量数据库(Vector Database)主要用于存储和搜索嵌入向量,以支持如聊天机器人和主题建模等生产用例。用户可通过 Typesense 设置向量数据库,创建数据集合并进行相似性搜索,以便安全且可扩展地处理嵌入数据。完成后,用户将掌握基础知识,并能够应用于更复杂的场景。
Weaviate 嵌入搜索实用指南
Using Weaviate for embeddings search
该笔记本介绍了一种简单的流程,通过下载数据、进行嵌入,并使用矢量数据库进行索引和搜索,以满足安全环境下的生产使用需求,如聊天机器人和主题建模等。矢量数据库(Vector Database)用于存储和管理嵌入向量,促进自然语言和图像识别等非结构化数据的处理。使用此数据库,企业能够安全、可扩展地解决各种嵌入应用场景。文中通过 Weaviate 示例演示了创建索引、存储数据和进行相似性搜索的基本步骤。
Whisper 提示语使用指南
Whisper prompting guide
OpenAI 的音频转录 API 提供了一个可选参数 prompt,用于帮助将多个音频段组合在一起。通过提交之前段落的转录文本,Whisper 模型可以更好地理解语音并保持一致的写作风格。尽管 prompts 不必是真实的转录文本,还可以通过虚构的 prompts 来引导模型使用特定的拼写或风格。本教程介绍了两种使用此类虚构 prompts 的技术,包括转录生成和拼写指南。通过合适设计的示例,有助于提高 Whisper 的转录质量,尤其是在处理复杂或不常见的命名时。
LlamaIndex 财务文档分析利器
Financial document analysis with LlamaIndex
LlamaIndex 是一个数据框架,旨在简化对 10-K 文档(美国证券交易委员会要求的年度报告)的财务分析。通过极少的代码,可以快速提取信息并合成洞见,尤其适用于处理长篇且专业术语密集的财务文档。该框架支持数据加载、索引建立及简单和高级问答(QA)功能,使财务分析师能够高效完成工作。
智能搜索与答案重排技巧
Question answering using a search API and re-ranking
使用 GPTs(生成式预训练变换器)可以提升信息检索效率。通过模仿人类浏览和利用嵌入(embeddings)技术,可以更智能地进行搜索。具体方法包括生成多样化搜索查询,执行并并行处理这些查询,然后通过语义相似性重新排序结果。最终结合所有相关搜索结果,生成针对用户提问的回答。这种混合方法可快速集成到现有搜索系统中,提升搜索质量和效率。
智能代理助力学术探索
How to use functions with a knowledge base
本文创建了一个利用 arXiv 数据回答学术问题的智能代理,包含两个主要功能:获取相关学术文章,并对指定文章进行详细摘要。用户可以通过提问获取最新的文章链接和摘要,代理将利用已下载文献和总结功能提供准确回答。此工作流程结合了搜索、存储和信息处理,提升了对学术资料的访问效率。
ChatGPT 函数调用指南
How to call functions with chat models
本笔记本介绍如何将 Chat Completions API 与外部函数结合使用,以增强 GPT 模型的功能。tools 参数允许开发者提供函数规范,模型据此生成符合规范的函数参数。API 不会执行函数调用,开发者需根据模型输出自行执行。模型还支持强制使用特定函数或不使用函数的选项。对于有多个函数调用的场景,新模型如 gpt-4o 或 gpt-3.5-turbo 能在一个回合中并行调用多个函数。此外,还介绍了如何通过数据库执行 SQL 查询,利用生成的查询结果与用户进行交互。
基于 SingleStoreDB 的语义搜索应用
Semantic search with SingleStoreDB
该笔记本展示了如何利用 SingleStoreDB 向量存储和函数构建一个与 ChatGPT 交互的问答应用。首先,通过 OpenAI API 获取用户询问的问题的答案。随后,下载有关 2022 年冬奥会的数据,并存储到 SingleStoreDB 中。最后,使用语义搜索获取相关信息,并将其传递给 ChatGPT,以便得到更准确的回答。该方法提升了基于文本信息的问答系统的准确性和响应能力。
向量搜索的力量与应用
SingleStoreDB
SingleStoreDB 具备出色的向量搜索(vector search)支持,利用其向量数据库子系统,用户可以通过 SQL 快速进行最近邻搜索,以找到语义相似的对象。该数据库支持向量及相似度搜索,使用 dot_product(点积)和 euclidean_distance(欧几里得距离)函数,广泛应用于人脸识别、视觉产品照片搜索和基于文本的语义搜索。随着生成性人工智能技术的发展,这些能力为文本聊天机器人提供了坚实基础。同时,SingleStoreDB 作为高性能、可扩展的现代 SQL 数据库管理系统,支持多种数据模型,包括结构化数据、半结构化数据、时间序列、全文、空间、键值以及向量数据。
Weaviate 与 OpenAI 生成搜索指南
Using Weaviate with generative OpenAI module for generative search
该笔记本适用于已将数据导入 Weaviate 的用户,并希望利用 Generative OpenAI 模块进行生成搜索。用户需提前配置 OpenAI API 密钥,并连接到 Weaviate 实例。通过 Weaviate 的生成搜索功能,可以针对存储的数据进行特定查询,并生成相应的内容总结。支持单项和分组生成,便于用户处理和分析数据。该文档提供了具体的代码示例,帮助用户进行快速上手。
多步骤提示下的单元测试编写技巧
Unit test writing using a multi-step prompt with legacy Completions
通过使用三步提示(multi-step prompts),可以更有效地为 Python 函数编写单元测试。首先,提示 GPT-3 解释函数的作用;其次,规划一系列单元测试,确保覆盖多种输入情况及边缘案例;最后,生成最终的测试代码。该方法还支持条件分支和使用不同模型处理不同步骤,确保代码的合理性和可读性。这种方式有助于提高测试的全面性和准确性。
DALL·E 动态遮罩创作指南
How to create dynamic masks with DALL·E and Segment Anything
Segment Anything 是 Meta 开发的一种模型,旨在选择图像的部分区域。结合 DALL·E 的图像修复能力,用户可以轻松选择并修改图像的特定部分。该过程包括初始化库、生成原始图像、创建动态遮罩并通过修复生成新图像。首先安装所需的依赖项和模型,然后使用示例代码进行图像编辑,允许用户创建个性化的时尚设计。
Hologres 向量数据库应用指南
Using Hologres as a vector database for OpenAI embeddings
Hologres 是阿里云提供的统一实时数据仓库服务,支持在线分析处理(OLAP)和大规模数据查询,并与 Proxima 深度集成,提供高性能的向量数据库功能。本指南介绍了如何使用 Hologres 存储 OpenAI API 生成的预计算嵌入(embeddings),并进行最近邻搜索。用户需准备 Hologres 云实例和 OpenAI API 密钥,通过 Python 库与 Hologres 连接,实现对文本查询的向量化及搜索功能,适用于大语言模型的上下文提示工程。
Redis 与 OpenAI 混合查询实战
Running hybrid VSS queries with Redis and OpenAI
本笔记本介绍了如何将 Redis 用作向量数据库,结合 OpenAI 的嵌入(embeddings)和采用 Redis 查询与搜索功能的混合查询。使用 RediSearch 模块,Redis 可以进行实时的向量索引和搜索。混合查询将向量相似性与传统的 Redis 查询和搜索过滤功能结合,使得应用程序代码更加简化。示例中展示了电商场景下,通过地理位置和价格范围查找与给定查询图像相似的商品。
ChatGPT 上下文记忆的 Redis 应用
Redis as a context store with Chat Completions
本笔记展示了如何将 Redis 用作 ChatGPT 的高速上下文记忆。使用 Redis Search 和 Redis JSON 模块,通过加载新闻文章为 ChatGPT 提供最新背景信息,从而增强其对超出模型知识截点的数据的回答能力。步骤包括设置 OpenAI API 和 Redis 客户端、创建索引以及加载数据,最后结合上下文信息提问,获取更准确的答案。
Kusto 与嵌入的相似度搜索
Kusto as a vector database for embeddings
使用 Azure Data Explorer (Kusto) 作为向量数据库,可以存储与 OpenAI 生成的嵌入(embeddings),并进行基于余弦相似度搜索。首先,预先计算的 Wikipedia 文章嵌入被下载并存储在 Kusto 的表中。接着,将用户查询转换为嵌入,并利用 Kusto 执行相似度查询,最后获取与输入查询相关的最相似文档。该流程需配备 Azure OpenAI 凭证与 Kusto 服务器实例。
Kusto 的向量数据库应用探索
Kusto as a vector database
Kusto(Azure Data Explorer)是一种云数据分析服务,能够实时分析大规模数据,尤其适合存储和搜索向量。Kusto 支持动态数据类型,适合存储未结构化数据如数组及属性包,并可通过额外列存储相关元数据。其内置函数 series_cosine_similarity_fl 可用于进行向量相似性搜索。此外,用户可以结合 OpenAI API 使用预计算的嵌入,进行文本查询转换和相似性搜索。
Redis 向量存储与 OpenAI 集成指南
Redis vectors as JSON with OpenAI
该笔记本展示了如何使用 JSON 和向量在 Redis 中存储数据,涉及创建文本向量、安装 Redis 和 OpenAI Python 客户端库、以及进行语义搜索和混合查询。首先,用户需设置 Redis 实例并安装相关模块。然后,通过 OpenAI API 生成文本嵌入,将其作为向量存入 Redis,并在数据集上进行向量相似性搜索。用户还可以结合全文搜索与 VSS(向量相似搜索)来查找相关文章,实现高效的语义检索。
Langchain 与 AnalyticDB 问答系统构建指南
Question answering with Langchain, AnalyticDB and OpenAI
该笔记本展示了如何使用 Langchain、AnalyticDB 作为知识库,以及 OpenAI 的 embeddings 构建问答系统。主要流程包括:利用 OpenAI API 计算 embeddings,并将其存储在 AnalyticDB 实例中,随后将文本查询转换为 embeddings,利用 AnalyticDB 执行最近邻搜索以获取相关上下文,并通过 LLM 从中找到答案。所有步骤通过调用 Langchain 的相应方法简化进行了。需要准备 AnalyticDB 云实例、Langchain 框架和 OpenAI API 密钥。
LangChain 构建智能代理指南
How to build a tool-using agent with LangChain
该笔记本介绍了如何使用 LangChain 强化 OpenAI 模型,使其能够访问外部工具,创建使用自定义工具的 LLM 代理(Agent)以回答用户查询。LangChain 是一个用于开发语言模型应用的框架,能够构建具有上下文感知能力的动态交互式应用。通过提供工具访问,LLM 可以更准确地回答问题,尤其在处理不够具体或过时的训练数据时,比如提供实时数据或对特定上下文的理解。内容包括如何构建 LLM 代理、设置记忆以追踪对话历史、以及通过知识库扩展工具集,使代理可以进行更加复杂的查询处理。
MyScale 与 OpenAI 嵌入的结合
Using MyScale as a vector database for OpenAI embeddings
MyScale 是基于 Clickhouse 构建的数据库,结合了向量搜索和 SQL 分析,提供高性能、简化的管理体验。通过使用 OpenAI API 生成的向量嵌入,用户可将数据存储在 MyScale 的云实例中,并通过 SQL 执行最近邻搜索。该过程包括加载预计算文本嵌入,并创建带有向量索引的 SQL 表,最终实现快速、准确的数据检索。
维基百科文章搜索嵌入指南
Embedding Wikipedia articles for search
该笔记展示了如何为搜索准备维基百科文章的数据集,特别是与 2022 年冬季奥运会相关的文章。主要步骤包括:下载相关维基百科文章、将文档分割成短小部分、使用 OpenAI API 计算每部分的嵌入(embedding),并将嵌入存储在 CSV 文件中。整个过程包括文档收集、清理和分割,以增强检索效果,并且对于大数据集,建议使用向量数据库存储。
内存搜索引擎 Typesense 详解
Typesense
Typesense 是一个开源的内存搜索引擎,支持自托管或在 Typesense Cloud 上运行。它通过将整个索引存储在内存中(同时备份到磁盘)来优化性能,并提供简化的开发体验。Typesense 支持属性过滤与向量查询的结合,提升搜索相关性。其他功能包括拼写容错、可调排名、动态排序、分面与过滤、分组与去重、联邦搜索、作用域 API 密钥、同义词支持以及推荐系统,适合多租户应用和高度可用的分布式集群设置。
AnalyticDB 与 OpenAI 嵌入集成指南
Using AnalyticDB as a vector database for OpenAI embeddings
该笔记本逐步指导如何将 AnalyticDB 用作 OpenAI 的向量数据库。核心过程包括:使用 OpenAI API 创建的预计算嵌入,存储到 AnalyticDB 云实例中,将原始文本查询转换为嵌入,并利用 AnalyticDB 执行最近邻搜索。AnalyticDB 是一款高性能分布式向量数据库,兼容 PostgreSQL 语法,能够高效处理数十亿数据向量,并提供丰富的索引算法和实时更新等功能。
Chroma 与 OpenAI 的问答系统构建解析
Robust question answering with Chroma and OpenAI
本笔记本详细介绍了如何使用 Chroma(一个开源的嵌入数据库)和 OpenAI 的文本嵌入模型构建问答系统,以解答数据集中的问题。通过结合科学文献数据集 SciFact,展示了基于自然语言的查询如何改进大语言模型(LLMs)在评估科学声明时的表现。研究过程包括查询直接的模型评估,并通过引入相关文献背景来优化判断,显著提高了准确性。结果表明,使用文献背景与假设文档嵌入(HyDE)可以有效提升模型性能。
Atlas 嵌入数据可视化指南
Visualizing embeddings in Atlas
Atlas 是一个机器学习工具,用于在网页浏览器中可视化大量的嵌入数据(embeddings)。通过上传数百万个嵌入数据,用户可以与数据进行交互。此示例展示了如何加载食物评论数据的嵌入,使用 Python 库 nomic,将其映射到 Atlas 中进行可视化,方便后续的分析和研究。
Azure 聊天响应创建指南
Azure Chat Completions example (preview)
该示例介绍了如何使用 Azure OpenAI 服务进行聊天响应的创建,并涵盖了内容过滤功能。用户首先需要安装依赖项并进行认证,包括使用 API 密钥或 Azure Active Directory 进行身份验证。接着,用户能在 Azure OpenAI Studio 部署 GPT 模型,通过构建的客户端生成聊天完成响应。通过内容过滤,用户可以识别和处理不符合政策的内容,确保生成内容的合规性。
Milvus 与 OpenAI 的电影搜索秘籍
Filtered search with Milvus and OpenAI
使用 OpenAI 生成电影描述的嵌入,并利用 Milvus 数据库进行相关电影搜索。该项目使用 HuggingFace 的数据集,包含超过 8 千条电影条目。通过嵌入函数将文本转换为嵌入向量,并按照特定的元数据进行批量插入。查询功能允许用户按描述和过滤条件检索电影,并输出相关电影的信息,如标题、类型、年份和评分。此方法提高了电影检索的精确性与效率。
Milvus 与 OpenAI 书籍推荐系统搭建指南
Getting started with Milvus and OpenAI
通过使用 OpenAI 的嵌入服务和 Milvus 的数据库,可以实现书籍描述的嵌入生成和相关书籍的检索。数据集来自 HuggingFace,包含超过 100 万个书名-描述对。首先,利用特定的库配置 Milvus 数据库,然后下载数据集并对书籍描述进行嵌入处理,最后将数据插入 Milvus 并支持基于用户查询的书籍检索。该过程涉及嵌入生成、数据存储与检索,旨在提高书籍推荐的准确性和效率。
Zilliz 与 OpenAI 电影检索方案
Filtered Search with Zilliz and OpenAI
该文章介绍了一种利用 OpenAI 生成电影描述的嵌入(embedding)并通过 Zilliz 数据库进行相关电影检索的方法。使用来自 HuggingFace 的 netflix-shows 数据集,包含超过 8000 部电影条目的元数据。通过设置数据库连接、嵌入生成和数据插入,用户可以进行查询并获取符合条件的电影信息,包括标题、类型、年份和评分等。这一方法可帮助用户精准找到符合自己需求的电影。
Zilliz 与 OpenAI 智能书籍推荐系统
Getting Started with Zilliz and OpenAI
本项目利用 OpenAI 的嵌入服务生成书籍描述的嵌入,并通过 Zilliz 数据库查找相关书籍。使用的数据集来自 HuggingFace,包含超过 100 万对书名和描述。首先通过设置数据库连接与插入书籍信息,接着可以根据输入查询相似书籍,并返回相关描述和得分。该流程提供了一种有效方式,以根据书籍信息进行智能推荐。
GPT-4 与 Pinecone 检索增强应用
Retrieval augmentation for GPT-4 using Pinecone
通过使用 Pinecone 数据库和 GPT-4 模型,可以有效地解决大型语言模型(LLMs)虚假信息的问题。首先,从 LangChain 文档中下载相关数据,将其处理为易于查找的格式,并通过 embedding 模型生成向量。接着,将这些向量存储在 Pinecone 中,以便于快速检索。最后,结合检索的上下文与用户的查询,通过 GPT-4 模型生成基于真实数据的回应。这种方法能够提升问答系统的准确性,减少异常回答的发生。
Pinecone 向量数据库全解析
Pinecone vector database
Pinecone 是一个面向开发者和工程师的向量数据库(vector database),旨在高效存储、搜索和推荐信息。其通过将复杂数据表示为数学向量,快速比较向量之间的相似性,从而无缝地检索相关信息。作为一个托管服务,Pinecone 减轻了维护负担,让用户专注于数据洞察。免费套餐支持最多 500 万个向量,具有良好的速度、准确性和可扩展性,还提供单级元数据过滤和前沿的稀疏-密集索引等高级功能。
语义搜索与 Pinecone 应用指南
Semantic search with Pinecone and OpenAI
使用 OpenAI Embedding API 生成文档的语言嵌入,并将这些嵌入索引到 Pinecone 向量数据库,以实现快速可扩展的向量搜索。这一组合适用于构建语义搜索、问答、威胁检测等依赖自然语言处理和大规模文本数据检索的应用。工作流程包括生成嵌入、上传到 Pinecone、并进行相似性查询,最终返回语义上相似的文档。
ChatGPT 输入格式化技巧
How to format inputs to ChatGPT models
ChatGPT 基于 OpenAI 的先进模型 gpt-3.5-turbo 和 gpt-4,允许用户通过 OpenAI API 构建应用程序。聊天模型接受一系列消息作为输入,并输出 AI 生成的消息。使用时需要导入 OpenAI 库,设置 API 密钥,调用聊天完成 API,传入模型名称、消息列表和其他可选参数(如 max_tokens、temperature 等)。此格式支持多种参数设置,实现灵活的会话和信息处理。
大型文档信息提取攻略
Long document content extraction
使用 GPT-3 可以从大型文档中提取关键数据、日期等重要信息。一种解决方案是将文档分块处理,分别提取信息,然后合并结果。具体步骤包括:从 PDF 文档中提取文本,创建用于提取的提示,分块处理文本,再将结果汇总。该方法已扩展到处理更复杂的问题,能够有效提取包括“动力单元成本上限”等多项关键信息,同时为行文设置模板,使信息提取过程更为高效。
Qdrant 向量数据库使用指南
Using Qdrant as a vector database for OpenAI embeddings
Qdrant 是一个高性能的向量数据库,可以存储由 OpenAI API 生成的神经嵌入,以及相关的元数据(payload)。它支持多种部署方式,包括本地、Kubernetes 集群或 Qdrant Cloud,具有 RESTful 和 gRPC 接口。该数据库内置独特的过滤机制,能够高效处理向量搜索。通过 Python 的 qdrant-client 库,用户可以轻松连接和操作 Qdrant 数据库,实现快速的最近邻搜索功能。
Langchain Qdrant OpenAI 问答系统构建指南
Question answering with Langchain, Qdrant and OpenAI
该笔记本展示了如何使用 Langchain、Qdrant 作为知识库和 OpenAI 嵌入技术实现一个问答系统。主要流程包括:使用 OpenAI API 计算嵌入,存储嵌入于本地 Qdrant 实例以构建知识库,利用 OpenAI API 将原始文本查询转换为嵌入,并使用 Qdrant 执行最近邻搜索以找到相关上下文,最终通过 LLM 从该上下文中获取答案。用户需搭建 Qdrant 服务器并安装必要的库。
Redis 开源键值存储解析
Redis
Redis 是一个开源的键值存储,广泛用于缓存、消息代理和数据库。它提供多种模块,如 RediSearch、RedisJSON 和 RedisTimeSeries,增强其功能。RediSearch 是 Redis 模块,支持查询、二级索引、全文搜索及向量搜索,具备快速索引、模糊搜索和复杂查询等特性。Redis 还可通过 Docker、Redis Cloud 和 Kubernetes 部署,支持分布式集群,适合大规模文档存储和检索。
Redis 与 OpenAI 的向量数据库应用
Using Redis as a vector database with OpenAI
这个笔记本介绍了如何使用 Redis 作为向量数据库,结合 OpenAI 的嵌入技术。Redis 是一种可扩展的实时键值数据库,利用 RediSearch 模块,可以对向量进行索引和搜索。用户可以在本地或云端部署 Redis,并使用 Python 客户端 redis-py 进行操作。通过将数据加载到 Redis 索引中,可以进行简单的向量搜索和混合搜索,这意味着可以结合向量和文本搜索。同时,Redis 还支持 HNSW 索引,能有效提升大数据集查询的速度。
OpenAI 与 Weaviate 矢量搜索整合
Weaviate <> OpenAI
Weaviate 是一个开源矢量搜索引擎,可以存储和搜索 OpenAI 嵌入(embeddings)及数据对象。其支持相似性搜索、混合搜索(结合多种搜索技术,如基于关键字和矢量搜索)及生成搜索(如问答)。Weaviate 还允许使用多种基于 OpenAI 的模块(如 text2vec-openai 和 qna-openai),实现快速高效的数据矢量化和查询。可在 Docker 容器、Weaviate 云服务或 Kubernetes 集群中运行。
Weaviate 与 OpenAI 向量搜索指南
Using Weaviate with OpenAI vectorize module for embeddings search
该笔记本旨在指导用户如何在未向量化数据的情况下,通过使用 Weaviate 和 OpenAI 的 text2vec-openai 模块生成向量嵌入并进行向量搜索。用户将学习设置 Weaviate 实例、连接 API、配置数据架构、导入数据及运行语义搜索等步骤。Weaviate 是一种开源向量搜索引擎,支持与结构化过滤结合,提供多种部署选项和编程语言库,能够高效处理海量数据,适用于聊天机器人和主题建模等生产场景。
Weaviate 与 OpenAI 混合搜索指南
Using Weaviate with OpenAI vectorize module for hybrid search
本笔记本旨在指导用户如何使用 Weaviate 结合 OpenAI 的 text2vec-openai 模块进行混合搜索。用户无需手动向数据生成向量,而是通过简便的步骤设置 Weaviate 实例,包括数据模式配置、数据导入以及混合查询的执行。Weaviate 是一个开源向量搜索引擎,可以快速处理数据对象和其向量,为安全存储和检索提供支持,适合于聊天机器人和主题建模等生产用例。用户可以选择不同的部署选项,如本地或云端服务。
Weaviate 与 OpenAI 问答集成指南
Question Answering in Weaviate with OpenAI Q&A module
本笔记本指导如何利用 OpenAI 的 completions 端点和 Weaviate (一个开源向量搜索引擎) 进行问答。用户可在未向量化的数据上生成向量嵌入,并通过 Weaviate 托管数据,灵活使用不同的部署选项(如自托管或云服务)。笔记本涵盖创建 Weaviate 实例、连接、配置数据模式、导入数据及进行查询的步骤。得益于 Weaviate 的 text2vec-openai 和 qna-openai 模块,数据的向量化和查询过程简化到无需手动操作。
检索增强生成问答法解析
Retrieval augmented generative question answering with Pinecone
使用 Pinecone 作为外部知识库,可以有效解决大语言模型(LLM)如 GPT-3 生成不准确答案的问题。通过询问相关的上下文,并结合生成式模型生成基于真实数据的答案,能够提高答案的准确性。该方法涉及创建向量嵌入(embedding)以表示文本语义,并使用检索增强生成(RAG)技术将检索到的信息输入到生成模型中,从而获得更精确的回答。
Weights & Biases 嵌入可视化指南
Visualizing embeddings in Weights and Biases
使用 Weights & Biases 平台,可以快速上传数据并通过嵌入投影工具可视化嵌入数据,利用 PCA、UMAP 和 t-SNE 等降维算法。我们首先创建包含原始数据和 1536 维嵌入数据的 W&B 表格,随后通过 W&B 提供的功能将其渲染为二维投影,便于分析和比较。此过程适用于优化机器学习模型的实验和结果可视化。
大型语言模型使用指南
How to work with large language models
大型语言模型是一种将文本映射到文本的函数,能够根据输入预测下一个最可能出现的文本。通过处理大量文本,这些模型学会了拼写、语法、释义、问答、对话、编程等能力。控制大型语言模型的主要方式是通过文本提示,包括指令、补全、场景设定和示范。它们在许多应用中得到了广泛使用,如生产力应用、教育应用和编码工具。要优化输出,提供明确具体的指示和背景信息至关重要。
文本嵌入的应用场景探索
Use cases for embeddings
OpenAI 的 API embeddings 端点可以用来衡量文本之间的相关性或相似性。通过利用 GPT-3 对文本的理解,这些 embeddings 在无监督学习和迁移学习中取得了先进的效果。Embeddings 可用于语义搜索(semantic search)、推荐系统(recommendations)、聚类分析(cluster analysis)、近重复检测等场景。在搜索时,可以将文本切分为小于限制的块,并嵌入每个块以便存储和检索。虽然 OpenAI 的 embeddings 模型权重无法微调,但可以通过训练数据定制 embeddings,以优化特定应用。
提升 GPT 输出效果的工具汇总
Related resources from around the web
越来越多的工具和文献被发布,以提升 GPT 输出的效果。包括用于检测有害内容的 Arthur Shield、LLM 应用的调试和监控工具 Baserun、链式语言模型提示的 LangChain,及改进推理的 Chain-of-Thought 提示方法等。这些资源助力开发者更好地利用语言模型,涉及的内容广泛,从提示工程到自动化评估,均为提升应用效果提供新思路。
处理长文本的嵌入技巧
Embedding texts that are longer than the model's maximum context length
OpenAI 的 text-embedding-3-small 模型的最大上下文长度为 8191 个 tokens,超过此长度会产生错误。处理长文本的两种主要方法是:1)将文本截断至最大允许长度;2)将文本分块,并逐个对每个块进行嵌入处理。分块时可以选择按照权重平均或保留每个块的嵌入。通过这些方法,可以有效地处理超出上下文长度限制的文本。
tiktoken 分词器使用指南
How to count tokens with Tiktoken
tiktoken 是 OpenAI 开发的一个快速开源分词器。它能将文本字符串(如 "tiktoken is great!")分割成标记(tokens)列表(例如 ["t", "ik", "token", " is", " great", "!"]),方便 GPT 模型处理。tiktoken 支持多种编码,包括 cl100k_base 和 gpt-4o-mini,以对应不同的模型,并提供了简单的 API 来获取编码和计算标记数量,帮助用户有效管理 API 调用的成本。
多步骤提示优化单元测试编写
Unit test writing using a multi-step prompt
复杂任务如编写单元测试可以通过多步骤提示进行优化。与单一提示不同,多步骤提示生成的文本可以作为后续提示的输入,促使 transformer 进行推理或规划。在这个示例中,使用三步提示来为 Python 函数编写单元测试:首先解释函数的功能,其次规划测试案例,最后生成覆盖这些案例的测试代码。代码示例还包括条件分支、不同步骤选用不同模型、输出有效性检查等功能,增强了整体测试的有效性和准确性。
DALL·E API 使用指南
How to use the DALL·E API
该笔记本展示了如何使用 OpenAI 的 DALL·E 图像 API 接口,主要包括三个端点:生成(Generations)、编辑(Edits)和变体(Variations)。用户可以通过文本提示生成新图像,利用现有图像进行编辑,或生成图像的变体。此外,文章中提供了设置 API 密钥和目录、构建请求的代码示例,并说明所需的输入项和参数,包括图像大小、质量和格式等。使用者可以通过示例学习如何实现各种图像处理功能。
交易数据聚类分析与标注
Clustering for transaction classification
本笔记本介绍了如何对未标记数据进行聚类分析。采用 K-Means 方法对具有特征的交易数据进行聚类,并使用 GPT-3 生成每个聚类的描述,进而为数据标注。通过对 359 个交易的嵌入(embeddings)进行处理,提取出具有代表性的聚类,最终得到五个新的聚类主题。这些聚类在数据可视化中显示出部分重叠,未来可通过微调进一步优化。
交易数据的多类别分类研究
Multiclass Classification for Transactions
使用公开数据集对交易进行多类别分类,探讨了三种分类方法:零样本分类(Zero-shot Classification)、基于嵌入(Embeddings)的分类和微调分类(Fine-tuned Classification)。首先,利用零样本分类对交易进行初步分类,然后在标注数据集上创建嵌入,并使用传统分类模型验证其效果。最后,训练微调模型,评估其在新数据集上的表现。结果显示,零样本和基于嵌入的方法在标注样本少的情况下效果更佳,而微调模型在样本量不足时表现较差。
提升大型语言模型可靠性的技术
Techniques to improve reliability
为提高大型语言模型在复杂任务中的可靠性,可以采取多种技术。首先,清晰说明任务、将复杂任务拆分为简单子任务、引导模型逐步推理等方法均可提升性能。此外,通过生成多个答案并从中挑选最佳答案以及对定制模型进行微调,能显著改善结果。研究表明,例如“让我们逐步思考”(Let's think step by step)策略能大幅提高答题准确率。合理运用这些技术,可以有效提升模型的表现。
应对 API 速率限制策略
How to handle rate limits
调用 OpenAI API 时,可能会出现 429 错误(“请求过多”)或 RateLimitError 的错误提示,表明超出了 API 的速率限制。速率限制旨在防止滥用,保证所有用户都有公平的访问权,并帮助 OpenAI 管理服务器负载。避免这种错误的一种策略是使用指数退避(exponential backoff)来自动重试请求,还可以通过增加请求之间的延迟或批处理请求来优化吞吐量。应对速率限制的具体做法包括使用第三方库如 Tenacity 或 backoff 进行重试,或者手动实现退避逻辑。
流式生成内容的最佳实践
How to stream completions
在默认情况下,OpenAI 的 API 会在生成完整的完成内容后一次性返回结果。对于较长的内容,请求响应可能需要几秒钟。通过设置 stream=True,可以实现逐步返回的流式响应,使得可以提前处理部分内容。流式返回的数据会包含 delta 字段,而不是 message 字段,这使得可以更快地开始使用生成的内容。需要注意的是,流式处理可能使内容的审核变得更困难,也可能影响使用的合规性。
Azure 文本嵌入创建指南
Azure embeddings example
该示例介绍了如何使用 Azure OpenAI 服务创建文本嵌入(embeddings)。首先,安装所需的依赖项并导入相关库。用户可以通过 API 密钥或 Azure Active Directory 进行身份验证。建立身份验证后,用户需在 Azure OpenAI Studio 中创建模型部署,并在代码中引用该部署。最后,利用构建的客户端创建文本嵌入并打印结果。
食品评论嵌入分类研究
Classification using embeddings
该文本分类任务使用嵌入(embeddings)对食品评论的评分(1至5分)进行预测。数据集被分为训练集和测试集,以便在未见数据上评估模型性能。使用随机森林分类器(RandomForestClassifier)进行训练,模型的整体分类准确率为78%,其中评分为5分的评论表现最好。可以推测,获取更多数据将有助于更准确地预测2至4星的评分,因为这些评分往往更具主观性。
嵌入式搜索提升问答能力
Question answering using embeddings-based search
该文本介绍了一种两步法(Search-Ask)来提高 GPT 对不熟悉主题的问答能力,尤其是关于最近事件(如 2022 年冬奥会)、非公开文档及过往对话等。首先,通过嵌入式搜索从文献库中检索相关文本,然后将检索到的内容与问题一起提供给 GPT,以获得准确答案。相较于微调(fine-tuning)模型,该方法利用模型的短期记忆,确保模型获取最新知识并提高回答的准确性。文本还涉及使用 OpenAI API 和一些示例代码来实现此流程。
数据聚类与主题分析
Clustering
使用简单的 k-means 算法对数据进行聚类,可以发现数据中隐藏的有价值的分组。通过将数据集中的嵌入(embedding)转换为 numpy 数组,选择 4 个聚类进行训练,最终可视化聚类的结果。对于每个聚类,通过随机选择评论样本,并使用 GPT-4 算法为聚类命名,得出了不同主题的客户评论。聚类结果显示,不同聚类之间反映出顾客对食物和宠物食品等方面的不同看法,数量较少的聚类能突显数据中的显著差异。
语义代码搜索与 Ada 嵌入
Code search using embeddings
该笔记展示了如何使用 Ada embeddings 实现语义代码搜索。通过解析 openai-python 代码库中的 Python 文件,提取函数并生成函数的嵌入向量。使用 text-embedding-3-small 模型将函数代码转化为嵌入后,结合余弦相似度查询,可以通过简单的英文描述快速找到相关函数,比如“反转字符串”的函数定义。最终,结果按照相似度排序,方便用户查找需要的代码。
自定义嵌入的优化策略
Customizing embeddings
该笔记本展示了如何根据特定任务自定义 OpenAI 的 embeddings(嵌入)。输入为训练数据,包括一对句子和标签,其中标签为 +1 表示相似,-1 表示不相似。通过生成一个矩阵来优化 embeddings 后,可以得到更符合实际应用需求的“自定义嵌入”。在二分类任务中,错误率下降可达 50%。通过示例使用 SNLI 语料库中的 1,000 对句子,展示了如何生成合成负样本,并通过优化矩阵提高文本相似度的预测准确率。
棒球冰球分类器微调实例
Fine tuning classification example
使用 babbage-002 分类器针对棒球(Baseball)和冰球(Hockey)两项运动进行微调。首先,从 sklearn 数据集中加载相关数据,创建包含 1197 条样本的训练数据,均分为两类。对数据进行处理后,仅使用 300 个示例进行快速微调。工具帮助检查和改进数据集,最终训练出的模型在验证集上的准确率达到 99.6%。此外,该模型还能够成功预测社交媒体上的相关信息,证明其应用的广泛性和准确性。
文本嵌入与 API 管理技巧
Using embeddings
该笔记本提供了使用 OpenAI API 中的 text-embedding-3-small 模型进行文本嵌入的实用代码片段。在示例中,用户可以输入文本以获取其嵌入,并了解到在频繁调用 API 时,使用 'tenacity' 包进行指数退避(exponential backoff)会更好地管理 API 速率限制。最后建议通过设置重试机制以提高效率,避免触发速率限制。每个文本的嵌入维度为 1536。
从数据集中获取文本嵌入方法
Get embeddings from dataset
该示例展示了如何从大型数据集中获取文本嵌入(embeddings)。使用的亚马逊美食评论数据集包含568,454条评论,本示例选取其中1000条最新的正负面评论。首先,将评论的标题和内容合并为一个文本,然后使用指定的嵌入模型(text-embedding-3-small)对其进行编码,生成对应的向量嵌入。最后,将包含嵌入的评论数据保存为CSV文件,便于后续使用。
嵌入技术与文章推荐系统
Recommendation using embeddings and nearest neighbor search
使用嵌入(embeddings)技术可以有效地推荐相似文章。文章以 AG 新闻数据集为基础,展示如何获取和存储文章嵌入,计算相似性并推荐与给定文章相似的其他文章。首先,通过函数生成每篇文章的嵌入向量,然后利用余弦距离评估文章之间的相似性。说明了该方法通过示例验证,并展示了较高级的可视化方式,如 t-SNE,将高维嵌入降维至二维,便于理解文本聚类效果。
文本嵌入在评分预测中的应用
Regression using the embeddings
该项目通过采用随机森林回归模型(Random Forest Regressor),利用文本嵌入(embedding)来预测亚马逊食品评论的评分,评分范围为 1 至 5 星。数据集分为训练集和测试集,以评估模型在未见数据上的表现。模型的均方误差(mse)为 0.65,平均绝对误差(mae)为 0.52,表明模型在预测评分时的平均误差约为 0.53 星。可以考虑进一步使用分类器或将嵌入应用于其他机器学习模型。
嵌入向量语义搜索探秘
Semantic text search using embeddings
可以通过嵌入搜索查询对所有评论进行高效的语义搜索,并找到最相似的评论。首先将评论数据集中的嵌入向量读入并转换为数组,然后采用余弦相似度评估查询与评论间的相似性。通过此方法,能够快速找到与特定产品相关的评论,提高检索效率,帮助用户及时获取相关信息。此技术适用于多种产品,如食品、宠物食品等,显著提升查找体验。
用户与产品嵌入的关系研究
User and product embeddings
通过对训练集中的用户和产品嵌入(embedding)进行计算,并在未见的测试集上进行评估,结果显示用户和产品的相似度与评价分数之间存在一定的关联性。利用训练集中的评论,通过对同一产品或同一用户的评论进行平均计算获得嵌入表示。评估时,我们使用余弦相似度(cosine similarity)来比较用户和产品嵌入,发现相似度得分与评价分数之间存在29.56%的正相关性。这表明用户和产品嵌入可以在一定程度上预测评论分数,作为现有推荐系统的补充特征。
嵌入可视化的星级分析
Visualizing the embeddings in 2D
使用 t-SNE(t-分布随机邻域嵌入)将 1536 维的嵌入降维至 2 维,实现可视化。在数据集中,每条评论根据星级评分进行着色,从红色到绿色的渐变,显示出较好的数据分离。最终的 2D 散点图展示了亚马逊评论的星级评分分布。
3D 嵌入可视化实例分析
Visualizing embeddings in 3D
该示例通过主成分分析 (PCA) 将 1536 维的嵌入降维至 3 维,以便在 3D 图中可视化数据点。使用的数据库为 dbpedia_samples.jsonl,该文件是从 DBpedia 验证数据集中随机抽取的 200 个样本。分类标签包括艺术家、电影、植物等,最后利用 Matplotlib 绘制不同类别的样本在 3D 空间中的分布。
嵌入技术下的零样本分类探索
Zero-shot classification with embeddings
通过嵌入技术和零标签数据进行情感分类,使用了4星和5星评价表示积极情感,1星和2星评价表示消极情感,3星评价则被视为中立。采用零样本分类的方法,将标签的描述嵌入并与样本进行余弦距离比较,来预测样本的情感标签。实验表明,使用更具描述性的标签可以显著提高分类效果,表现出良好的准确率和召回率。
LaTeX 格式的翻译秘籍
Translate a book writen in LaTeX from Slovenian into English
本文介绍了如何将米兰·米特罗维奇所著的《欧几里得平面几何》从斯洛文尼亚语翻译成英语,保持 LaTeX 命令不变。翻译过程中,先将文本分割为约一页大小的块,然后逐块翻译,最后再合并。采用了适当的方法来管理文本块的大小,确保翻译的连贯性和一致性,最终保存为一个完整的 LaTeX 文档。
东京奥运会问答模型构建指南
Fine-Tuned Q&A - collect data
该项目旨在创建一个基于文本段落的问答模型,主要针对2020年东京夏季奥运会数据进行处理。首先,通过维基百科 API 收集相关信息,并将数据按标题分类。接着,过滤掉低信息量的部分,确保每个段落的长度适合模型处理。最后,将处理后的数据集用于训练问答模型,使其能在有足够上下文时进行回答,并对无关问题输出“没有足够的上下文来回答此问题”。此项目分为多个步骤,以提高问答模型的准确性与可靠性。
生成问答数据集的实用指南
Fine-Tuned Q&A - create Q&A
使用 davinci-instruct-beta-v3 模型创建合成的问答数据集,通过给定的上下文生成问题并进行回答。首先,读取有关 2020 年东京奥运会的相关数据,并将标题、章节和内容整合为上下文。接着基于上下文生成相关的问题,并通过模型提供答案。该过程可能耗时并消耗大量令牌,但最终的问答数据集将被保存用于后续使用。模型面临生成问题时可能含糊或重复,以及回答不够精准的限制,然而通过大量示例,其性能依然可观。
问答系统精调模型训练指南
Fine-Tuned Q&A - train
该文章介绍了为问答系统(Q&A)训练精调模型的过程。使用现有的问题、答案和上下文对数据集进行处理,生成正向示例和多个对抗性负向示例,以提升模型的准确性。文章还说明了如何创建用于训练的精调数据集,分离训练集和测试集,并使用OpenAI API提交训练数据。最后,介绍了如何结合判别器和问答模型,根据上下文判断问题是否可回答,确保模型能够准确识别出不足的上下文并做出相应的反应。