日本語版
最新ニュース
企業

azure ai search + openaiを使用して最適にAI Q&Aを構築する

で パート2、Azure AI検索をAzure Personalizerと統合して、Optimizely CMSでよりスマートでユーザー重視のエクスペリエンスを構築しました。 Serviceapiを使用して、CMSコンテンツをAzure AI検索に送信しました。パート3では、さらに一歩進んでいます。ユーザーが自然言語の質問をしてAIを搭載した回答を得ることができるようにします。しかし、ここにひねりがあります:Serviceapiを使用する代わりに、今回はインデックス付きコンテンツを照会する方法を探ります 直接 Azure AI SearchのREST APIを使用します。なぜ自然言語Q&A?ユーザーが正確なキーワードを知らない場合があります。彼らは次のようなことを尋ねます:「どのように製品を返すことができますか?」「デモを予約できますか?」AzureのOpenaiとAzure AI検索のセマンティック機能により、Webサイトはこれらのクエリを理解し、役立つコンテキストの応答を提供できるようになりました。アーキテクチャの概要更新されたフローCMSコンテンツは、Azure AI検索(ServiceapiまたはCrawlerを介して)によってインデックス付けされます。検索インデックスには、セマンティック設定が強化されています。ユーザーは自然言語クエリを入力します。バックエンドは、Azure Searchのセマンティック検索 + Azure Openai(チャット/完了API)を使用して、コンテキストの回答を返します。Azure Search APIを使用してコンテンツを抽出しますAzure Search Rest APIを使用して、インデックス付きコンテンツに直接アクセスできます。上位5つの結果を取得する方法の例は次のとおりです。public async Task> SearchAzureContentAsync(string query) { var searchServiceName = ""; var indexName = ""; var apiKey…

azure ai search + openaiを使用して最適にAI Q&Aを構築する

1745648471
2025-04-25 23:19:00

パート2、Azure AI検索をAzure Personalizerと統合して、Optimizely CMSでよりスマートでユーザー重視のエクスペリエンスを構築しました。 Serviceapiを使用して、CMSコンテンツをAzure AI検索に送信しました。パート3では、さらに一歩進んでいます。ユーザーが自然言語の質問をしてAIを搭載した回答を得ることができるようにします。

しかし、ここにひねりがあります:Serviceapiを使用する代わりに、今回はインデックス付きコンテンツを照会する方法を探ります 直接 Azure AI SearchのREST APIを使用します。

なぜ自然言語Q&A?

ユーザーが正確なキーワードを知らない場合があります。彼らは次のようなことを尋ねます:

「どのように製品を返すことができますか?」
「デモを予約できますか?」

AzureのOpenaiとAzure AI検索のセマンティック機能により、Webサイトはこれらのクエリを理解し、役立つコンテキストの応答を提供できるようになりました。

アーキテクチャの概要

更新されたフロー

  1. CMSコンテンツは、Azure AI検索(ServiceapiまたはCrawlerを介して)によってインデックス付けされます。
  2. 検索インデックスには、セマンティック設定が強化されています。
  3. ユーザーは自然言語クエリを入力します。
  4. バックエンドは、Azure Searchのセマンティック検索 + Azure Openai(チャット/完了API)を使用して、コンテキストの回答を返します。

Azure Search APIを使用してコンテンツを抽出します

Azure Search Rest APIを使用して、インデックス付きコンテンツに直接アクセスできます。上位5つの結果を取得する方法の例は次のとおりです。

public async Task> SearchAzureContentAsync(string query)
{
    var searchServiceName = "";
    var indexName = "";
    var apiKey = "";
    using var client = new HttpClient();
    client.DefaultRequestHeaders.Add("api-key", apiKey);
    var url = $"https://{searchServiceName}.search.windows.net/indexes/{indexName}/docs?api-version=2021-04-30-Preview&search={query}&$top=5";
    var result = await client.GetStringAsync(url);
    
    var json = JsonDocument.Parse(result);
    var docs = new List();
    foreach (var item in json.RootElement.GetProperty("value").EnumerateArray())
    {
        docs.Add(item.GetProperty("content").GetString());
    }
    return docs;
}

Azure Openaiを使用して回答を生成します

関連するドキュメントを取得したら、それらをAzure Openaiに渡して、文脈的な答えを生成します。

public async Task AskOpenAiAsync(string question, List context)
{
    var prompt = $"""
You are a helpful assistant. Based on the following content, answer the question:
{string.Join("nn", context)}
Question: {question}
Answer:
""";
    var openAiKey = "";
    var endpoint = "https://.openai.azure.com/openai/deployments//completions?api-version=2022-12-01";
    var payload = new
    {
        prompt = prompt,
        temperature = 0.7,
        max_tokens = 200
    };
    using var client = new HttpClient();
    client.DefaultRequestHeaders.Add("api-key", openAiKey);
    var response = await client.PostAsync(endpoint, new StringContent(JsonSerializer.Serialize(payload), Encoding.UTF8, "application/json"));
    var result = JsonDocument.Parse(await response.Content.ReadAsStringAsync());
    return result.RootElement.GetProperty("choices")[0].GetProperty("text").GetString();
}

Optimizely CMSと統合します

このようなコントローラーを作成できます。

public class QnAController : Controller
{
    [HttpPost]
    public async Task Ask(string question)
    {
        var docs = await SearchAzureContentAsync(question);
        var answer = await AskOpenAiAsync(question, docs);
        return Json(new { answer });
    }
}

そしてあなたの見解について:



まとめ

これにより、最終的なパズルのピースがまとめられています。ユーザーが最適化のサイトで自由に話すようにし、AIはリアルタイムで解釈して応答します。コンテンツのインデックス作成から再ランキング、フルオンのQ&Aまで、CMSはインテリジェントで、会話型、ユーザーファーストになりました。

これを実際に見たいですか?サンプルのレポとビデオのウォークスルーをお楽しみに!

このシリーズの最初の部分、 Optimizely CMSとAzure AI検索の統合 – サイト検索のゲームチェンジャー

#azure #search #openaiを使用して最適にAI #QAを構築する

執筆者について: nipponese

Nipponese News編集部は、国内外のニュースを日本語で分かりやすくお届けします。