将对话 CLI 与 Azure OpenAI 配合使用

您所在的位置:网站首页 open设置拨号 将对话 CLI 与 Azure OpenAI 配合使用

将对话 CLI 与 Azure OpenAI 配合使用

2023-06-03 19:15| 来源: 网络整理| 查看: 265

在 TypeScript CLI 中使用 Azure Open AI 项目 06/01/2023

注意

本文的部分内容是在人工智能的帮助下创建的。 在发布之前,作者根据需要审阅和修改了其内容。 请参阅《我们在 Microsoft Learn 上使用 AI 生成内容的原则》一文。

本教程介绍如何在交互式 CHAT CLI 中将 Azure Open AI 与 JavaScript 配合使用。 Azure Open AI 是一组预生成的 AI 模型,可用于向应用程序添加智能功能。 使用 Azure Open AI,可以轻松地将自然语言处理、计算机视觉和其他 AI 功能集成到 TypeScript 应用程序中。

注意

本教程和 Azure OpenAI 服务目前为预览版。 两者都将随着服务的发展而更新。

先决条件 Azure 订阅 - 免费创建订阅 已在所需的 Azure 订阅中授予对 Azure OpenAI 服务的访问权限。 目前,仅应用程序授予对此服务的访问权限。 可以填写 https://aka.ms/oai/access 处的表单来申请对 Azure OpenAI 服务的访问权限。 LTS 版本的 Node.js 部署了 gpt-35-turbo 或 gpt-41 模型的 Azure OpenAI 服务资源。 有关模型部署的详细信息,请参阅资源部署指南。 记下资源终结点和 API 密钥。 本教程后面会用到它们。 应用程序体系结构

本教程中将构建 (CLI) 应用程序的命令行接口是一个简单的聊天机器人,它使用 Azure OpenAI 服务生成用户输入的文本响应。 会话由 OpenAIClient 类封装和管理。 会话循环是单独管理的。

创建新的 TypeScript 应用程序

为项目创建新目录,并更改为新目录。

mkdir openai cd openai

使用 Git 获取与本教程相关的 azure-typescript-e2e-samples 示例存储库中的 2 个子目录。

git init git remote add origin https://github.com/azure-samples/azure-typescript-e2e-apps git config core.sparseCheckout true git sparse-checkout set cli-openai lib-openai git pull origin main git sparse-checkout disable

这两个子目录是:

cli-openai:具有聊天循环的 CLI 应用程序。 lib-openai:OpenAI 对话管理功能。

创建名为 的 package.json 根级文件,并将这两个子目录添加到工作区设置:

{ "name": "@azure-typescript-e2e-apps", "version": "1.0.0", "description": "", "scripts": { }, "workspaces": [ "lib-openai/", "cli-openai/" ] }

这允许 CLI 应用程序使用 npm 工作区引用 LIB 应用程序。

注意

本教程使用 NPM 工作区和单独的子目录,但不需要使用 Azure OpenAI 或创建 CLI。 可以在 Web 应用或无服务器 API 中使用 lib-openai 目录。

安装两个子目录的依赖项。

npm install 为 Azure OpenAI 设置创建环境文件

在 ./cli-openai 目录中,创建一个 .env.development 文件。

将以下环境变量复制到 文件中 .env.development 。

AZURE_OPENAI_ENDPOINT=https://.openai.azure.com AZURE_OPENAI_API_KEY= AZURE_OPENAI_DEPLOYMENT= AZURE_OPENAI_API_VERSION=2023-03-15-preview AZURE_OPENAI_SYSTEM_PROMPT='Hello'

将尖括号中的值替换为你自己的值:

这些值由 CLI 应用程序读取并传递给 LIB 应用程序。

运行 CLI 应用程序

使用 root-leve package.json build 脚本生成这两个应用。

npm run build

运行 CLI 应用程序。

npm run start

CLI 的 package.json 启动脚本使用开关调用 CLI:

-d mydata.txt:对话的初始数据。 -e .env.development:环境文件。 -l debug.log:用于调试应用程序的日志文件。

在命令提示符下,输入问题(如 What is TypeScript? ),然后按 Enter。

CLI 使用简短的答案和新提示进行响应。

通过后续问题(例如 What are the top 3 things to learn about Azure with using TypeScript?)继续对话。

如果要结束对话,请输入 exit 并选择 Enter。

OpenAI 请求和响应

如果使用开关,-d则 CLI 应用程序会创建 debug.log 。

./lib-openai/debug.log打开 并查找从 LIB 应用程序返回的 Azure OpenAI 请求和响应。

LIB OpenAI request: ... LIB OpenAI response: ...

OpenAI 请求包括你提交的问题以及 OpenAI 的整体对话和元数据设置。

{ "conversation": { "systemPrompt": { "role": "system", "content": "Your are an Azure services expert whose primary purpose is to help customers understand how to use Azure with the JavaScript SDKs." }, "messages": [ { "role": "user", "content": "what is typescript" } ] }, "appConfig": { "endpoint": "https://REDACTED.openai.azure.com", "apiKey": "REDACTED", "deployment": "REDACTED", "apiVersion": "2023-03-15-preview" }, "requestConfig": { "max_tokens": 800, "temperature": 0, "top_p": 0.95, "frequency_penalty": 0, "presence_penalty": 0, "stop": "" } }

requestConfig上面所示的属性包括 LIB 应用程序中的默认请求选项,例如 temperature 和 max_tokens。

开始创建聊天时,可以试验响应 () max_tokens 的长度以及响应 (temperature) 的随机性。

OpenAI 响应包括选项数组中的答案以及元数据和跟踪信息。

{ "id": "chatcmpl-7LusHpPOALYwkFQfkyE3XOsVxVSMz", "object": "chat.completion", "created": 1685457869, "model": "gpt-35-turbo", "choices": [ { "index": 0, "finish_reason": "stop", "message": { "role": "assistant", "content": "TypeScript is a programming language that is a superset of JavaScript. It was developed by Microsoft and is designed to make it easier to write and maintain large-scale JavaScript applications. TypeScript adds features such as static typing, classes, interfaces, and modules to JavaScript, which can help catch errors at compile-time rather than at runtime. It also provides better tooling and IDE support, making it easier to write and debug code. TypeScript code is compiled into JavaScript code that can run in any browser or JavaScript runtime." } } ], "usage": { "completion_tokens": 101, "prompt_tokens": 13, "total_tokens": 114 } } 清理资源

使用完 Azure OpenAI 服务资源后, 请删除该资源。

资源 教程示例代码: CLI:聊天循环 LIB:OpenAI 库 OpenAIConversationClient 类 Azure OpenAI 文档 Azure OpenAI 示例 适用于 JavaScript 的 AZURE SDK 示例


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3