使用TypeScript和Azure OpenAI创建您自己的ChatGPT
Azure只不过是一个很棒的云服务提供商,无论是在服务、创新、安全性还是透明度方面。Azure提供了一个很棒的AI套件,现在还提供生成型AI解决方案。可以说,现在非常容易使用自定义的超参数,在你自己的方式中创建和训练个性化的GPT了。
先决条件
- 一个拥有活跃订阅的Azure帐户。如果没有,可以选择Azure学生服务,该服务为您提供免费的Azure积分。
- 对JavaScript能力和/或了解有限。
- 在您的系统中安装了NodeJS和NPM。
创建Azure AI服务资源
- 登录到 Azure 门户,然后导航至 Azure AI 服务。
2. 创建 Azure AI 服务资源,并选择免费层(f0),由于这是用于演示目的,我们将选择 GPT turbo 3、3.5 变体。
3. 保持一切默认设置,完成创建后,前往OpenAI仪表板,您将能够看到您的AI资源列表。
4. 从左侧导航栏进入键和终结点,您会看到键和终结点,将其保存。我们将在稍后使用这些键和终结点来调用Azure OpenAI API。
5. 现在,我们需要打开独立的 Open AI 仪表板,该仪表板不在 Azure 上:https://oai.azure.com/portal
6. 在这里,转到部署并点击创建新部署,在选择要使用的模型。目前我们将使用ChatGPT Turbo 3.5作为默认模型版本0301。
7. 模型训练完成后,在Open AI仪表盘上,您可以看到部署名称,复制该部署名称,因为我们将在将来需要它。
现在,我们已经准备好为我们的应用程序编写代码,该代码将在后端调用Azure AI API,并帮助我们创建我们自己的GPT。
创建TypeScript应用程序结构。
- 创建package.json文件: { "name": "openai-demo", "version": "1.0.0", "description": "Open AI演示", "main": "dist/index.js", "scripts": { "lint": "eslint \"./src/**\"", "build": "tsc", "start": "node .", "test": "npx mocha -r ts-node/register src/test/infra-creation.ts" }, "author": "abhinav.sharma@example.com", "license": "ISC", "dependencies": { "@azure/openai": "¹.0.0-beta.10", "dotenv": "¹⁶.3.1", "express": "⁴.18.2" }, "devDependencies": { "@types/express": "⁴.17.21" }}
- 使用npm i命令安装并初始化该目录。
- 创建tsconfig.json文件(必要时定义TypeScript在整个应用中的使用方式):{ "compilerOptions": { "module": "commonjs", "esModuleInterop": true, "target": "es6", "noImplicitAny": true, "moduleResolution": "node", "sourceMap": true, "outDir": "dist", // "rootDir": "./src", "baseUrl": ".", "paths": { "*": [ "node_modules/*" ] }, "skipLibCheck": true }, // "include": [ // "src/**/*/*" // ]}
让我们创建您自己的GPT应用程序:
由于我们将要使用Express,所以让我们创建一个索引文件,在这个文件中我们将要在端口上初始化我们的服务器。我们将使用.env文件来保存端口。
- 创建 .env 文件。将上面保存的秘密存储在以下变量中:AZURE_OPENAI_KEY=ca5cxxx01bf6d343xxxxxxxAZURE_OPENAI_ENDPOINT=https://openai-xxxx/PORT=3005DEPLOYMENT_NAME=openai-model-demo
- 为应用程序服务器创建index.ts文件:https://gist.github.com/abhi-bhatra/7c8f3c97fe88e8ed43a9426c6cf1a7cc
- 这里,我创建了两个路径,一个可以作为欢迎/首页面,您可以自定义使其更加美观,另一个路径将成为POST路径,用于发送请求。
- 现在,让我们在名为openai.ts的其他文件中编写应用程序逻辑:https://gist.github.com/abhi-bhatra/2bf909f1df5e8667fd8b10053c845a38
- 让我们了解以上代码: a. 导入 Azure SDK 客户端。 b. 创建一个名为 completion 的函数,我们将在索引文件中导出这个函数。 c. 使用 Azure OpenAI 密钥和终结点初始化 API 客户端。 d. 现在,让我们使用 Azure OpenAI SDK 中的 getChatCompletion 方法,此方法用于初始化 GPT 模型在基础提示上的行为。 e. 了解更多关于如何编写提示的信息,请访问:https://github.com/abhi-bhatra/generative-ai-for-beginners/tree/main/04-prompt-engineering-fundamentals#complex-prompt f. 目前,提示是固定的,只是为了演示目的而设定的:Kubernets 是什么? g. 但是,我们可以创建一个 HTML 表单,并将客户的响应以动态变量的形式提交给这个提示。(待办)
一旦你按照上述步骤进行了操作,只需运行npm start即可开始使用你的应用程序。一切都已就绪并且可以正常运作啦!!!
支持
- 您可以在以下网址查看应用程序的代码:https://github.com/abhi-bhatra/learn-gpt
- 了解有关Azure Open AI和生成AI的更多信息,请访问:https://github.com/abhi-bhatra/generative-ai-for-beginners/tree/main
- 在领英上找我:https://www.linkedin.com/in/abhinavsharma0