Azure Machine Learning - 使用自己的数据与 Azure OpenAI 模型对话-LMLPHP

环境准备

  • Azure 订阅 - 免费创建订阅

  • 已在所需的 Azure 订阅中授予对 Azure OpenAI 的访问权限。

    Azure OpenAI 服务需要注册,并且目前仅供经批准的企业客户与合作伙伴使用。

  • 已部署聊天模型的 Azure OpenAI 资源(例如 GPT-3 或 GPT-4)。

  • 聊天模型可以使用版本 gpt-35-turbo (0301)gpt-35-turbo-16kgpt-4gpt-4-32k

  • 请确保至少为 Azure OpenAI 资源分配了[认知服务参与者]角色。

使用 Azure OpenAI Studio 添加数据

Azure Machine Learning - 使用自己的数据与 Azure OpenAI 模型对话-LMLPHP
导航到 Azure OpenAI Studio,然后使用有权访问 Azure OpenAI 资源的凭据登录。 在登录过程中或登录之后,选择适当的目录、Azure 订阅和 Azure OpenAI 资源。

  1. 选择“Chat Playground”磁贴。

Azure Machine Learning - 使用自己的数据与 Azure OpenAI 模型对话-LMLPHP

  1. 在“助手设置”磁贴上,选择“添加数据(预览)”>“+ 添加数据源”。
    Azure Machine Learning - 使用自己的数据与 Azure OpenAI 模型对话-LMLPHP
  2. 在显示的窗格中,选择“选择数据源”下的“上传文件”。 选择“上传文件”。 Azure OpenAI 需要存储资源和搜索资源来访问数据并编制数据索引。

3.1. 要使 Azure OpenAI 访问存储帐户,需要启用跨原点资源共享 (CORS)。 如果尚未为 Azure Blob 存储资源启用 CORS,请选择“启用 CORS”。

3.2. 选择 Azure AI 搜索资源,然后选择确认以表明知晓连接该资源将使用你的帐户。 然后,选择“下一步”。

Azure Machine Learning - 使用自己的数据与 Azure OpenAI 模型对话-LMLPHP

  1. 在“上传文件”窗格中,选择“浏览文件”,并选择要上传的文件。 然后选择“上传文件”。 然后,选择“下一步”。

  2. 在“数据管理”窗格中,可以选择为索引启用[语义搜索还是向量搜索]。

  3. 查看输入的详细信息,然后选择“保存并关闭”。 现在,你可以与模型聊天,模型将使用数据中的信息来构造响应。

Chat Playground

Azure Machine Learning - 使用自己的数据与 Azure OpenAI 模型对话-LMLPHP
通过Chat Playground使用开始使用无代码方法浏览 Azure OpenAI 功能。 这是一个简单的文本框,可以在其中提交提示以生成补全内容。 在此页中,可以快速循环访问和试验这些功能。

Azure Machine Learning - 使用自己的数据与 Azure OpenAI 模型对话-LMLPHP

可以试验温度和预响应文本等配置设置,以提高任务的性能。 可以在 [REST API]中详细了解每个参数。

  • 选择“生成”按钮后会将输入的文本发送到补全 API,并将结果流式传输回到文本框中。
  • 选择“撤消”按钮可以撤消上一次生成调用。
  • 选择“重新生成”按钮可以同时执行撤消和生成调用。

部署模型

对 Azure OpenAI 工作室中的体验感到满意后,可以通过选择“部署到”按钮直接从工作室部署 Web 应用。
Azure Machine Learning - 使用自己的数据与 Azure OpenAI 模型对话-LMLPHP
这让你可以选择将模型部署为独立的 Web 应用程序,或者如果要在模型上使用[你自己的数据],则可以使用 Power Virtual Agents。

例如,如果选择部署 Web 应用:

首次部署 Web 应用时,应选择“创建新的 Web 应用”。 为应用选择一个名称,该名称将成为应用 URL 的一部分。 例如,https://<appname>.azurewebsites.net

为已发布的应用选择订阅、资源组、位置和定价计划。 要更新现有应用,请选择“发布到现有 Web 应用”,然后从下拉菜单中选择上一个应用的名称。

使用Python调用

要成功地对 Azure OpenAI 进行调用,需要使用以下变量。 本快速入门假定已将数据上传到 Azure Blob 存储帐户,并且已创建 Azure AI 搜索索引。

环境变量

  • [命令行]
setx AOAIEndpoint REPLACE_WITH_YOUR_AOAI_ENDPOINT_VALUE_HERE
setx AOAIKey REPLACE_WITH_YOUR_AOAI_KEY_VALUE_HERE
setx AOAIDeploymentId REPLACE_WITH_YOUR_AOAI_DEPLOYMENT_VALUE_HERE
setx SearchEndpoint REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_VALUE_HERE
setx SearchKey REPLACE_WITH_YOUR_AZURE_SEARCH_RESOURCE_KEY_VALUE_HERE
setx SearchIndex REPLACE_WITH_YOUR_INDEX_NAME_HERE

创建 Python 环境

  1. 为项目新建一个名为 openai-pytho 的文件夹,并且新建一个名为 main.py 的 Python 代码文件。 更改到该目录:
mkdir openai-python
cd openai-python
  1. 安装以下 Python 库:
  • [OpenAI Python 1.x]
pip install openai
pip install python-dotenv

创建 Python 应用

  1. 从项目目录中,打开 main.py 文件并添加以下代码:
  • [OpenAI Python 1.x]
import os
import openai
import dotenv

dotenv.load_dotenv()

endpoint = os.environ.get("AOAIEndpoint")
api_key = os.environ.get("AOAIKey")
deployment = os.environ.get("AOAIDeploymentId")

client = openai.AzureOpenAI(
    base_url=f"{endpoint}/openai/deployments/{deployment}/extensions",
    api_key=api_key,
    api_version="2023-08-01-preview",
)

completion = client.chat.completions.create(
    model=deployment,
    messages=[
        {
            "role": "user",
            "content": "How is Azure machine learning different than Azure OpenAI?",
        },
    ],
    extra_body={
        "dataSources": [
            {
                "type": "AzureCognitiveSearch",
                "parameters": {
                    "endpoint": os.environ["SearchEndpoint"],
                    "key": os.environ["SearchKey"],
                    "indexName": os.environ["SearchIndex"]
                }
            }
        ]
    }
)

print(completion.model_dump_json(indent=2))
  1. 运行以下命令:
python main.py

应用程序以适合在许多场景下使用的 JSON 格式打印响应。 它包含对来自已上传文件的查询和引文的答案。

12-16 22:44