Наконец-то я получил доступ к Azure OpenAI, поэтому пересоздал свой предыдущий пример для работы с Azure OpenAI. В целом он похож, а различия выделены в этом документе Azure. Также есть небольшие изменения в LangChain и LlamaIndex. Вам необходимо выполнить предварительные шаги, задокументированные до продолжения. Это может занять несколько дней, так как вам нужно отправить форму, и кто-то в Microsoft должен ее утвердить.

Шаги аналогичны описанным ранее (пожалуйста, смотрите эту ссылку для более подробной информации):

  1. Создание вложений пользовательских данных
  2. Свяжите их с завершениями чата Azure.

Обязательно установите следующую переменную env или измените код, чтобы предоставить их напрямую. См. «Управление ключами» и «Конечная точка», как показано на портале Azure.

export AZURE_API_KEY='abc...'
export AZURE_API_BASE='https://...'

Вложения

См. build_index_azure.py, где LlamaIndex вызывает Azure, а затем сохраняет файлы. Исходные PDF-файлы находятся под local-data, а выходные данные индекса сохраняются в local-index-azure в виде векторных файлов.



Примечание. deployment — это имя развертывания, которое вы увидите после развертывания модели. Вы можете назвать это как угодно. Вам нужно развернуть 2 разные модели. На момент написания статьи используется рекомендуемая модель text-embedding-ada-002.

Вот усеченный вид вызова API.

method=post path=https://<your-azure-ai-instance>.openai.azure.com//openai/deployments/text-embedding-ada-002/embeddings?api-version=2023-03-15-preview
api_version=2023-03-15-preview data='{"input": [[2964, 6234, 25, 220, 23, 198, 1213, 1292, 25, 829, 300, 1481, 9585, 16378, 271, 3923, ....]], "encoding_format": "base64"}' 

response_code=200
body='{\n  "object": "list",\n  "data": [\n    {\n      "object": "embedding",\n      "index": 0,\n      "embedding": "lp..."\n    }\n  ],\n  "model": "ada",\n  "usage": {\n    "prompt_tokens": 336,\n    "total_tokens": 336\n  }\n}\n'

В итоге у меня есть вывод вроде:

INFO:llama_index.token_counter.token_counter:> [build_index_from_nodes] Total embedding token usage: 56230 tokens
> [build_index_from_nodes] Total embedding token usage: 56230 tokens

Чат-бот

У меня есть интерфейс чата с использованием Gradio. See local-index-chat-azure.py Он загружает созданный ранее локальный индекс и использует LangChain в сочетании с OpenAI для предоставления диалогового интерфейса.



В вашем терминале вы должны увидеть что-то вроде:

> Entering new AgentExecutor chain...
Thought: Do I need to use a tool? No
AI: Hello Rahul! Is there something you need assistance with?

> Finished chain.


> Entering new AgentExecutor chain...
Thought: Do I need to use a tool? Yes
Action: VMware Index
Action Input: How to add users to VMware org
Observation: To add users to VMware org, follow these steps:
1. Open the Cloud Services Console and select Identity & Access Management > Active Users.
2. Click Add Users.
3. On the Add New Users page, enter the email address of the user you want to add to your Organization in the Users text box.
4. Assign the role the user will have in the Organization in the Assign Organization Roles section.
5. To assign the user service roles in the Organization, click Add service access and use the drop-down menus to make a selection.
6. Click Add to send an invitation to the user.


> Finished chain.

Теперь о создании приложений, полезных для бизнеса!

Если эти темы вас интересуют, то свяжитесь со мной, и я буду признателен за любой отзыв. Если вы хотите работать над такими проблемами, вы, как правило, также найдете открытые роли! Пожалуйста, обратитесь к LinkedIn.