Skip to content

Azure AI

概念

Azure AI 是微软在 Azure 云平台上提供的一组人工智能服务,覆盖模型推理、搜索、文档解析、语音、视觉等能力。对企业应用而言,最常用的入口是 Azure OpenAI Service——在 Azure 托管环境中调用 GPT、Embedding 等模型,并配合 Azure AI Search 构建 RAG 应用。

💡 Azure OpenAI 的 API 与 OpenAI 官方接口高度兼容,现有基于 openai SDK 或 LangChain 的代码通常只需更换 endpoint 与认证信息即可迁移。

核心服务

服务作用典型场景
Azure OpenAI Service托管 GPT、Embedding、DALL·E 等模型对话、文本生成、向量化
Azure AI Search全文 + 向量混合检索RAG 知识库检索
Azure AI Foundry统一开发门户(原 Azure AI Studio)模型部署、Prompt 调试、Agent 编排
Azure Document Intelligence文档结构化解析(OCR、表格)合同、发票、PDF 入库
Azure Speech / Vision语音与图像能力语音转写、图像分析

快速开始

1. 创建资源

Azure Portal 中:

  1. 创建 Azure OpenAI 资源
  2. 在资源内 Deploy models,部署所需模型(如 gpt-4otext-embedding-3-small
  3. 记录 EndpointAPI KeyDeployment Name(部署名,非模型名)

2. 安装依赖

bash
pip install openai
# 若使用 LangChain
pip install langchain-openai

3. 调用 Chat Completions

Azure OpenAI 使用 api-version 参数,endpoint 格式为 https://{resource}.openai.azure.com/

python
from openai import AzureOpenAI

client = AzureOpenAI(
    azure_endpoint="https://your-resource.openai.azure.com/",
    api_key="your-api-key",
    api_version="2024-02-15-preview",
)

response = client.chat.completions.create(
    model="gpt-4o",  # 此处填部署名(Deployment Name)
    messages=[
        {"role": "system", "content": "你是一个有帮助的助手"},
        {"role": "user", "content": "用一句话解释什么是 RAG"},
    ],
)

print(response.choices[0].message.content)

4. 调用 Embeddings

python
embedding = client.embeddings.create(
    model="text-embedding-3-small",  # 部署名
    input="Azure OpenAI 支持向量检索",
)

vector = embedding.data[0].embedding
print(len(vector))  # 维度取决于模型

与 LangChain 集成

LangChain 通过 AzureChatOpenAIAzureOpenAIEmbeddings 封装 Azure OpenAI,用法与 Langchain 中的 LCEL 链一致。

python
from langchain_openai import AzureChatOpenAI, AzureOpenAIEmbeddings
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser

llm = AzureChatOpenAI(
    azure_endpoint="https://your-resource.openai.azure.com/",
    api_key="your-api-key",
    api_version="2024-02-15-preview",
    azure_deployment="gpt-4o",
    temperature=0.7,
)

embeddings = AzureOpenAIEmbeddings(
    azure_endpoint="https://your-resource.openai.azure.com/",
    api_key="your-api-key",
    api_version="2024-02-15-preview",
    azure_deployment="text-embedding-3-small",
)

prompt = ChatPromptTemplate.from_messages([
    ("system", "请用{language}回答"),
    ("user", "{question}"),
])

chain = prompt | llm | StrOutputParser()
print(chain.invoke({"language": "中文", "question": "Azure AI 有哪些优势?"}))

在 Azure 上构建 RAG 时,常见架构为:

文档 → Document Intelligence 解析 → Embedding → Azure AI Search 索引
用户提问 → Embedding → Search 检索 → 上下文 + 问题 → Azure OpenAI 生成

Azure AI Search 支持向量检索关键词检索混合检索,适合作为 RAG 的生产级检索层。索引创建与数据导入可通过 Portal、REST API 或 azure-search-documents SDK 完成。

bash
pip install azure-search-documents

认证方式

方式说明适用场景
API Key在请求头中携带 api-key本地开发、快速验证
Microsoft Entra ID基于 Azure AD 的 OAuth 令牌生产环境、细粒度权限控制

生产环境建议使用 Entra ID(Managed Identity),避免在代码或配置中硬编码 Key。

与 OpenAI 官方 API 的差异

  • Endpoint 不同:必须使用 Azure 资源专属 endpoint,不能使用 api.openai.com
  • 部署名:请求中的 model 参数填 Deployment Name,而非公开模型名
  • API Version:需显式指定 api-version(如 2024-02-15-preview
  • 区域与配额:模型可用性、TPM(Tokens Per Minute)因区域和资源 SKU 而异

相关阅读

  • AIGC — 大模型基础概念与 OpenAI 参数
  • RAG — 检索增强生成流程
  • Langchain — LCEL 与 Runnable 链式调用

Released under the MIT License.