Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применяется только к:Портал Foundry (классический). Эта статья недоступна для нового портала Foundry.
Дополнительные сведения о новом портале.
Примечание
Содержание в новой документации Microsoft Foundry может открываться по ссылкам в этой статье вместо документации Foundry (классической версии), которую вы просматриваете сейчас.
В этой статье вы узнаете, как использовать LlamaIndex с моделями, развернутыми из каталога моделей в Microsoft Foundry.
Вы можете использовать модели, развернутые в Microsoft Foundry, с LlamaIndex двумя способами:
Использование конкретного API поставщика модели: Некоторые модели, такие как OpenAI, Cohere или Mistral, предлагают собственный набор API и расширений для LlamaIndex. Эти расширения могут включать определенные функциональные возможности, которые поддерживают модель и поэтому подходят, если вы хотите использовать их. При работе с
llama-index, установите расширение, которое предназначено для модели, которую вы хотите использовать, напримерllama-index-llms-openaiилиllama-index-llms-cohere.Использование API вывода модели Azure AI: Все модели, развернутые в Foundry, поддерживают API вывода модели, который предоставляет общий набор функций, используемый большинством моделей в каталоге. Преимуществом этого API является то, что, так как это одинаково для всех моделей, переход от одного к другому так же просто, как изменение используемого развертывания модели. Дальнейшие изменения в коде не требуются. При работе с LlamaIndex установите расширения
llama-index-llms-azure-inferenceиllama-index-embeddings-azure-inference.
В этом примере вы работаете с API вывода модели.
Важно
Azure бета SDK для вывода ИИ устарел и будет прекращён 26 августа 2026 года. Перейдите на общедоступный API OpenAI/v1 с стабильным пакетом SDK OpenAI. Следуйте инструкциям по миграции , чтобы перейти на OpenAI/v1, используя пакет SDK для предпочитаемого языка программирования.
Необходимые условия
Чтобы запустить это руководство, вам потребуется:
- Учетная запись Azure с активной подпиской. Если у вас нет, создайте учетную запись free Azure, которая включает бесплатную пробную подписку.
- Проект Foundry.
- Требуемая роль:
- Владелец или участник ресурса Foundry или Центра искусственного интеллекта для развертывания моделей
- Пользователь Azure ИИ для использования модели в проекте Foundry
- Azure Разработчик ИИ для использования модели в рамках проекта на основе хаба
Развертывание модели, поддерживающее API вывода моделей. Эта статья использует
Mistral-Large-3в примерах кода; вы можете заменить его на собственное развернутое имя модели.Чтобы использовать возможности внедрения в LlamaIndex, вам потребуется модель внедрения, например
cohere-embed-v3-multilingual.- Следуйте инструкциям по развертыванию моделей в качестве бессерверных развертываний API.
Установлена версия Python 3.8 или выше, включая pip.
Установлен LlamaIndex. Ее можно установить с помощью следующей команды:
pip install llama-indexВ этом примере вы работаете с API вывода моделей, поэтому установите следующие пакеты:
pip install -U llama-index-llms-azure-inference pip install -U llama-index-embeddings-azure-inferenceВажно
Для использования службы Foundry Models должна быть установлена версия
0.2.4llama-index-llms-azure-inferenceилиllama-index-embeddings-azure-inference.
Настройка среды
Чтобы использовать LLM, развернутые на портале Foundry Microsoft, вам потребуется конечная точка и учетные данные для подключения к нему. Выполните следующие действия, чтобы получить необходимые сведения из модели, которую вы хотите использовать:
-
Войдите в Microsoft Foundry. Убедитесь, что переключатель New Foundry включен. Эти действия относятся к Foundry (new).
Откройте проект, в котором развернута модель, если она еще не открыта.
Скопируйте URL-адрес конечной точки и ключ.
В этом сценарии задайте URL-адрес конечной точки и ключ в качестве переменных среды. (Если скопированная конечная точка содержит дополнительный текст после /models, удалите его, чтобы URL-адрес закончился /models , как показано ниже.)
export AZURE_INFERENCE_ENDPOINT="https://<resource>.services.ai.azure.com/models"
export AZURE_INFERENCE_CREDENTIAL="<your-key-goes-here>"
После настройки среды создайте клиент для подключения к конечной точке.
import os
from llama_index.llms.azure_inference import AzureAICompletionsModel
llm = AzureAICompletionsModel(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=os.environ["AZURE_INFERENCE_CREDENTIAL"],
)
Совет
Если развертывание модели размещено в Azure OpenAI в ресурсе Foundry Models или Foundry Tools, настройте клиент в соответствии с указаниями из сервисов Azure OpenAI Models и Foundry Models.
Если конечная точка обслуживает несколько моделей, например с службой Foundry Models или GitHub Model, необходимо указать параметр model_name:
import os
from llama_index.llms.azure_inference import AzureAICompletionsModel
llm = AzureAICompletionsModel(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=os.environ["AZURE_INFERENCE_CREDENTIAL"],
model_name="Mistral-Large-3",
)
Что это делает: Создает клиент LLM с явной спецификацией имени модели для конечных точек с несколькими моделями. Параметр model_name сообщает службе, какую модель следует использовать для завершения чата.
Ссылки:
Кроме того, если конечная точка поддерживает Microsoft Entra ID, можно использовать следующий код для создания клиента:
import os
from azure.identity import DefaultAzureCredential
from llama_index.llms.azure_inference import AzureAICompletionsModel
llm = AzureAICompletionsModel(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=DefaultAzureCredential(),
)
Что это делает: Создает клиента LLM, используя аутентификацию Microsoft Entra ID (Azure AD), которая более безопасна для эксплуатационных сред, чем ключи API.
Примечание
При использовании Microsoft Entra ID убедитесь, что конечная точка развернута с помощью этого метода проверки подлинности и у вас есть необходимые разрешения для вызова.
Проверка настройки
Проверьте подключение клиента с помощью простого вызова:
from llama_index.core.llms import ChatMessage
messages = [ChatMessage(role="user", content="Hello")]
response = llm.chat(messages)
print(response)
Что это делает: Вызывает модель с простым сообщением для проверки подлинности и подключения. Ожидаемые выходные данные: объект ответа, содержащий приветственное сообщение модели.
Ссылки:
Если вы планируете использовать асинхронный вызов, используйте асинхронную версию для учетных данных:
from azure.identity.aio import (
DefaultAzureCredential as DefaultAzureCredentialAsync,
)
from llama_index.llms.azure_inference import AzureAICompletionsModel
llm = AzureAICompletionsModel(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=DefaultAzureCredentialAsync(),
)
Azure модели OpenAI и служба Foundry Models
Если вы используете службу Azure OpenAI или Foundry Models убедитесь, что у вас есть по крайней мере версия 0.2.4 интеграции LlamaIndex. Используйте параметр api_version, если необходимо выбрать конкретный api_version.
Для службы Foundry Models необходимо передать model_name параметр:
from llama_index.llms.azure_inference import AzureAICompletionsModel
llm = AzureAICompletionsModel(
endpoint="https://<resource>.services.ai.azure.com/models",
credential=os.environ["AZURE_INFERENCE_CREDENTIAL"],
model_name="Mistral-Large-3",
)
Для Azure OpenAI в моделях Foundry:
from llama_index.llms.azure_inference import AzureAICompletionsModel
llm = AzureAICompletionsModel(
endpoint="https://<resource>.openai.azure.com/openai/deployments/<deployment-name>",
credential=os.environ["AZURE_INFERENCE_CREDENTIAL"],
api_version="2024-05-01-preview",
)
Совет
Проверьте, какая версия API используется для развертывания. Использование неправильного api_version или не поддерживаемого моделью приводит к исключению ResourceNotFound .
Параметры инференции
Вы можете настроить способ вывода для всех операций, использующих этот клиент, задав дополнительные параметры. Этот подход позволяет избежать их указания на каждом вызове, который выполняется к модели.
llm = AzureAICompletionsModel(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=os.environ["AZURE_INFERENCE_CREDENTIAL"],
temperature=0.0,
model_kwargs={"top_p": 1.0},
)
Что это делает: Задает параметры вывода по умолчанию (temperature и top_p), которые применяются ко всем вызовам чата и завершения, выполненным с этим клиентом. Более низкая температура (0,0) создает более детерминированные выходные данные; top_p управляет разнообразием выборки.
Ссылки:
Для параметров, не поддерживаемых в API вывода модели (справочник), но доступных в базовой модели, используйте model_extras аргумент. В следующем примере параметр safe_prompt, доступный только для моделей Mistral, передается.
llm = AzureAICompletionsModel(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=os.environ["AZURE_INFERENCE_CREDENTIAL"],
temperature=0.0,
model_kwargs={"model_extras": {"safe_prompt": True}},
)
Использование моделей LLM
Клиент можно использовать непосредственно или настроить модели, которые ваш код использует в LlamaIndex. Чтобы использовать модель напрямую, используйте метод для моделей инструкций чата chat :
from llama_index.core.llms import ChatMessage
messages = [
ChatMessage(
role="system", content="You are a pirate with colorful personality."
),
ChatMessage(role="user", content="Hello"),
]
response = llm.chat(messages)
print(response)
Вы также можете передавать выходные данные:
response = llm.stream_chat(messages)
for r in response:
print(r.delta, end="")
Метод complete по-прежнему доступен для моделей типа chat-completions. В таких случаях входной текст преобразуется в сообщение с помощью role="user".
Использование моделей встраивания
Как и при создании клиента LLM, можно подключиться к модели внедрения. В следующем примере укажите переменную среды, чтобы указать модель внедрения:
export AZURE_INFERENCE_ENDPOINT="<your-model-endpoint-goes-here>"
export AZURE_INFERENCE_CREDENTIAL="<your-key-goes-here>"
Затем создайте клиент:
from llama_index.embeddings.azure_inference import AzureAIEmbeddingsModel
embed_model = AzureAIEmbeddingsModel(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=os.environ['AZURE_INFERENCE_CREDENTIAL'],
model="<your-model-name>",
)
Что это делает: Создает экземпляр клиента для встраивания, чтобы преобразовывать текст в векторные представления. Эмбеддинги — это числовые представления текста, используемые для поиска семантического сходства и получения с дополненным генеративным подходом (RAG).
Ссылки:
В следующем примере показан простой тест для проверки его работы:
from llama_index.core.schema import TextNode
nodes = [
TextNode(
text="Before college the two main things I worked on, "
"outside of school, were writing and programming."
)
]
response = embed_model(nodes=nodes)
print(response[0].embedding)
Что это делает: Преобразует текстовый узел в эмбеддинги и выводит на экран числовую репрезентацию. Ожидаемые выходные данные: список чисел с плавающей запятой, представляющий семантический смысл текста (типичная длина: 384–1024 измерения в зависимости от модели).
Ссылки:
Настройка моделей, которые использует код
В коде можно использовать клиент модели LLM или встраивания по отдельности при работе с LlamaIndex или настроить весь сеанс при помощи параметров Settings. При настройке сеанса все код использует одинаковые модели для всех операций.
from llama_index.core import Settings
Settings.llm = llm
Settings.embed_model = embed_model
Что это делает: Регистрирует клиенты LLM и внедряет их глобально, поэтому все операции LlamaIndex автоматически используют эти модели без необходимости передавать их в качестве параметров каждой функции.
Ссылки:
Однако для некоторых сценариев требуется общая модель для большинства операций и конкретная модель для данной задачи. В этих случаях установите модель LLM или эмбеддинг для каждой конструкции LlamaIndex. В следующем примере показано, как задать определенную модель:
from llama_index.core.evaluation import RelevancyEvaluator
relevancy_evaluator = RelevancyEvaluator(llm=llm)
Что это делает: Создает средство оценки релевантности, использующее пользовательский клиент LLM для оценки результатов извлечения. Это позволяет использовать различные модели для различных задач (например, определенную модель для оценки и общего чата).
Ссылки:
Как правило, используйте сочетание обоих стратегий.