菜单

文本生成应用

相关源文件

本文档介绍如何使用大型语言模型 (LLM) 构建文本生成应用程序。文本生成是生成式 AI 最基本的功能之一,它使开发人员能够创建能够为各种目的生成类似人类文本的应用程序。有关基于聊天的应用程序的信息,请参阅 聊天应用程序;有关使用嵌入式搜索的功能,请参阅 搜索应用程序

什么是文本生成应用程序?

文本生成应用程序是利用 LLM 根据提示或输入生成新文本内容的软件系统。与命令集有限或界面僵化的传统应用程序不同,文本生成应用程序通过接受自然语言输入并生成上下文相关的输出来提供更大的灵活性。

来源: 06-text-generation-apps/README.md23-55

与传统应用程序的比较

传统的软件应用程序通常提供

  • 有限的命令集:用户只能执行预定义的命令
  • 僵化的界面:交互遵循严格的模式
  • 语言特定性:通常设计用于单一语言

然而,文本生成应用程序提供了

  • 自然语言输入:用户可以用自己的话表达需求
  • 灵活的交互:不受预定义命令结构的限制
  • 广泛的知识访问:LLM 在海量语料库上进行了训练
  • 适应性:无需显式编程即可处理各种查询

来源: 06-text-generation-apps/README.md27-46

文本生成应用程序的用例

文本生成应用程序可用于多种目的

用例描述示例
聊天机器人回答特定主题问题的交互式系统公司产品信息助手
内容生成创建各种文本格式散文写作、博客文章生成
文本摘要将较长的文本精简成较短的格式文章摘要、报告要点
创意写作协助故事叙述和小说创作故事开头、角色发展
代码生成根据描述创建编程代码正则表达式、函数实现

来源: 06-text-generation-apps/README.md47-54 01-introduction-to-genai/README.md86-111

文本生成应用程序的核心组件

文本生成应用程序由几个关键组件组成,它们共同将用户输入转换为有意义的输出。

来源: 06-text-generation-apps/README.md55-77

库和 SDK

为了构建文本生成应用程序,开发人员可以利用各种库

  • openai:与 OpenAI 模型交互的主要库
  • Langchain:一个用于 Python 的更高级别库,有助于处理 LLM
  • Semantic Kernel:微软支持 C#、Python 和 Java 的库

这些库封装了 API 调用的复杂性,并提供了发送提示和处理完成的便捷方法。

来源: 06-text-generation-apps/README.md62-72

理解提示和完成

与文本生成模型的核心交互包括

  • 提示:提供给模型的文本输入
  • 完成:模型生成的文本输出

在 OpenAI 库中,这通常通过标准文本生成的 Completion.create() 方法或更具交互性的对话响应的 ChatCompletion.create() 方法来处理。

来源: 06-text-generation-apps/README.md132-158

构建文本生成应用程序

创建文本生成应用程序涉及多个步骤,从设置所需的库到处理模型的响应。

来源: 06-text-generation-apps/README.md73-158

设置环境

开始构建文本生成应用程序

  1. 安装所需的库:

    pip install openai python-dotenv
    
  2. 设置环境变量:在一个 .env 文件中存储 API 密钥等敏感信息

    OPENAI_API_KEY=your_api_key
    AZURE_OPENAI_ENDPOINT=your_endpoint (for Azure OpenAI)
    
  3. 配置 OpenAI 客户端:

来源: 06-text-generation-apps/README.md79-130 00-course-setup/README.md24-73

创建基本的文本生成应用程序

以下是创建简单的文本生成应用程序的方法

来源: 06-text-generation-apps/README.md178-199

高级配置参数

文本生成可以使用多个参数进行自定义

Token

Token 是模型处理的基本单位。限制 Token 的数量可以控制响应的长度并影响成本

来源: 06-text-generation-apps/README.md583-589

温度

Temperature 控制模型输出的随机性

  • 低温度(0.0-0.3):更具确定性、专注的响应
  • 中等温度(0.4-0.7):平衡的创造力和连贯性
  • 高温度(0.8-1.0):更具创造性、多样化,有时不可预测的结果

在您的完成请求中设置温度

来源: 06-text-generation-apps/README.md591-597

实用示例:构建食谱生成器

食谱生成器提供了文本生成应用程序的一个实用示例。本示例演示了如何构建一个交互式应用程序,该应用程序可根据现有食材生成食谱。

来源: 06-text-generation-apps/README.md222-422

实现步骤

  1. 收集用户输入的食材

  2. 格式化提示并包含这些信息

  3. 将提示发送到 OpenAI API 并接收响应

  4. 处理并显示生成的食谱:

  5. 添加过滤条件以适应饮食限制

  6. 根据食谱生成购物清单

来源: 06-text-generation-apps/README.md372-537

文本生成应用程序的最佳实践

在构建文本生成应用程序时,请遵循以下最佳实践,以确保安全性、效率和质量

安全考量

  • 切勿将 API 密钥包含在您的代码中。使用环境变量或安全的密钥存储服务。
  • 实施适当的身份验证和授权,以防止对您的应用程序进行未经授权的访问。
  • 验证用户输入以防止提示注入攻击。

来源: 06-text-generation-apps/README.md553-582 00-course-setup/README.md23-73

优化 Token 使用

  • 使用清晰、简洁的提示以最大程度地减少 Token 消耗。
  • 设置适当的 max_tokens 限制以控制响应长度和成本。
  • 考虑将复杂任务拆分为多个有针对性的请求

来源: 06-text-generation-apps/README.md583-590

调整 Temperature 以获得最佳结果

  • 使用较低的温度(0.0-0.3)以获得事实性、确定性的响应(例如,回答事实性问题)。
  • 使用中等温度(0.4-0.7)以获得自然的文本,并具有一定的变化性。
  • 使用较高的温度(0.8-1.0)用于创意任务,例如故事叙述或想法生成。

来源: 06-text-generation-apps/README.md591-599

提高响应质量

  • 在提示中提供清晰的说明
  • 在可能的情况下提供示例以指导模型。
  • 使用系统消息来设置上下文和边界。
  • 实施反馈循环以根据用户交互优化输出。

来源: 06-text-generation-apps/README.md227-422

结论

文本生成应用程序提供了一种灵活而强大的方式,可以利用大型语言模型来创造有价值的用户体验。通过了解如何精心设计有效的提示,配置合适的参数以及处理完成的内容,开发人员可以构建能够为各种目的生成高质量文本的应用程序。

在开发文本生成应用程序时,请记住考虑

  • 适用于特定用例的适当温度设置
  • 令牌使用量及其对成本和性能的影响
  • 处理 API 密钥的安全最佳实践
  • 与生成内容交互的用户体验注意事项

对于更高级的交互模式,请考虑探索聊天应用程序,它建立在这些基础之上,以创建会话式体验。