Sdílet prostřednictvím


AI: Azure OpenAI na vašich datech

Integrace funkcí zpracování přirozeného jazyka Azure OpenAI (NLP) a dokončování nabízí významný potenciál pro zvýšení produktivity uživatelů. Díky využití vhodných výzev a pravidel může asistent umělé inteligence efektivně generovat různé formy komunikace, jako jsou e-mailové zprávy, zprávy SMS a další. Tato funkce vede ke zvýšení efektivity uživatelů a zjednodušených pracovních postupů.

I když je tato funkce sama o sobě velmi výkonná, můžou existovat případy, kdy uživatelé potřebují generovat dokončování na základě vlastních dat vaší společnosti. Můžete mít například kolekci návodů k produktům, které můžou být pro uživatele náročné, když pomáhají zákazníkům s problémy s instalací. Alternativně můžete udržovat komplexní sadu nejčastějších dotazů souvisejících s výhodami zdravotní péče, které můžou uživatelům vyžadovat čtení a získání odpovědí, které potřebují. V těchto případech a mnoha dalších vám služba Azure OpenAI umožňuje využít vlastní data ke generování dokončování, což zajišťuje přesnější odpověď na dotazy uživatelů a kontextově přesnější odpověď.

Tady je rychlý přehled toho, jak funkce Přineste si vlastní data funguje z dokumentace k Azure OpenAI.

Poznámka:

Jednou z klíčových funkcí Azure OpenAI pro vaše data je schopnost načítat a využívat data způsobem, který vylepšuje výstup modelu. Azure OpenAI na vašich datech společně s Azure AI Search určuje, jaká data se mají načítat z určeného zdroje dat na základě vstupu uživatele a poskytnuté historie konverzací. Tato data se pak rozšíří a znovu odešle jako výzvu k modelu OpenAI s připojenými informacemi k původní výzvě. I když se načtená data připojují k příkazovému řádku, výsledný vstup je stále zpracován modelem stejně jako jakákoli jiná výzva. Jakmile se data načtou a výzva se odešle do modelu, použije tento model tyto informace k dokončení.

V tomto cvičení budete:

  • Vytvořte vlastní zdroj dat pomocí portálu Azure AI Foundry.
  • Nasaďte model vkládání pomocí portálu Azure AI Foundry.
  • Nahrajte vlastní dokumenty.
  • Zahájení chatové relace v chatovacím hřišti pro experimentování s generováním dokončení na základě vašich vlastních dat.
  • Prozkoumejte kód, který používá Azure AI Search a Azure OpenAI k vygenerování dokončení na základě vašich vlastních dat.

Začněme nasazením modelu vkládání a přidáním vlastního zdroje dat v Azure AI Foundry.

Přidání vlastního zdroje dat do Azure AI Foundry

  1. Přejděte do Azure OpenAI Studia a přihlaste se pomocí přihlašovacích údajů, které mají přístup k vašemu prostředku Azure OpenAI.

  2. V navigační nabídce vyberte Nasazení .

  3. Vyberte Možnost Nasadit model -->Nasadit základní model na panelu nástrojů.

  4. V seznamu modelů vyberte model pro vložení textu ada-002 a vyberte Potvrdit.

  5. Vyberte následující možnosti:

    • Název nasazení: text-embedding-ada-002
    • Verze modelu: Výchozí
    • Typ nasazení: Standard
    • Nastavte hodnotu Tokens per Minute Rate Limit (thousands) na 120 tisíc.
    • Filtr obsahu: DefaultV2
    • Povolit dynamickou uvozovku: Povoleno
  6. Vyberte tlačítko Nasadit.

  7. Po vytvoření modelu v navigační nabídce vyberte Domovskou stránku a přejděte na úvodní obrazovku.

  8. Na úvodní obrazovce vyhledejte dlaždici Přineste si vlastní data a vyberte Vyzkoušet.

    Azure OpenAI Studio Přineste si vlastní data

  9. Vyberte Přidat data a potom Přidejte zdroj dat.

  10. V rozevíracím seznamu Vybrat zdroj dat vyberte Nahrát soubory.

  11. V rozevíracím seznamu Vybrat prostředek úložiště objektů blob v Azure vyberte Vytvořit nový prostředek služby Azure Blob Storage.

  12. V rozevíracím seznamu Předplatné vyberte své předplatné Azure.

  13. V rozevíracím seznamu Vybrat prostředek úložiště objektů blob v Azure vyberte Vytvořit nový prostředek služby Azure Blob Storage.

  14. Tím přejdete na web Azure Portal, kde můžete provádět následující úlohy:

    • Zadejte jedinečný název účtu úložiště, například byodstorage[Vaše příjmení].
    • Vyberte oblast, která je blízko vaší polohy.
    • Vyberte Zkontrolovat a pak vytvořit.
  15. Po vytvoření prostředku úložiště objektů blob se vraťte do dialogového okna Azure AI Foundry a v rozevíracím seznamu Vyberte prostředek úložiště objektů blob vyberte nově vytvořený prostředek úložiště objektů blob. Pokud ji v seznamu nevidíte, vyberte ikonu aktualizace vedle rozevíracího seznamu.

  16. Aby byl váš účet úložiště přístupný, musí být zapnuté sdílení prostředků mezi zdroji (CORS). V dialogovém okně Azure AI Foundry vyberte Zapnout CORS .

    Zapnutí CORS v nástroji Azure OpenAI Studio Přineste si vlastní data

  17. V rozevíracím seznamu Vybrat prostředek Azure AI Search vyberte Vytvořit nový prostředek služby Azure AI Search.

  18. Tím se vrátíte na web Azure Portal, kde můžete provádět následující úlohy:

    • Zadejte jedinečný název prostředku AI Search, například byodsearch-[Vaše příjmení].
    • Vyberte oblast, která je blízko vaší polohy.
    • V části Cenová úroveň vyberte Změnit cenovou úroveň a pak vyberte Basic a pak Vyberte. Úroveň Free není podporovaná, takže na konci tohoto kurzu vyčistíte prostředek AI Search.
    • Vyberte Zkontrolovat a pak vytvořit.
  19. Po vytvoření prostředku AI Search přejděte na stránku Přehled prostředku a zkopírujte hodnotu Url do místního souboru.

    Azure OpenAI Studio AI Search Url

  20. V navigační nabídce vyberte Nastavení -->Keys .

  21. Na stránce Řízení přístupu k rozhraní API vyberte Obě , pokud chcete službě povolit přístup pomocí spravované identity nebo pomocí klíče. Po zobrazení výzvy vyberte Ano .

    Poznámka:

    I když v tomto cvičení použijeme klíč rozhraní API, protože přidání přiřazení rolí může trvat až 10 minut, s trochou dalšího úsilí můžete povolit bezpečnější přístup ke službě spravované identitě přiřazené systémem.

  22. V levé navigační nabídce vyberte Klíče a zkopírujte hodnotu primárního klíče správce do místního souboru. V pozdější části cvičení budete potřebovat adresu URL a hodnoty klíčů.

  23. V navigační nabídce vyberte Nastavení --> ranker a ujistěte se, že je vybraná možnost Free.

    Poznámka:

    Pokud chcete zkontrolovat, jestli je sémantický ranker dostupný v konkrétní oblasti, podívejte se na stránku Produkty dostupné podle oblastí na webu Azure a zjistěte, jestli je uvedená vaše oblast.

  24. Vraťte se do dialogového okna Azure AI Foundry Add Data (Přidat data ) a v rozevíracím seznamu Vyberte prostředek Azure AI Search vyberte nově vytvořený vyhledávací prostředek. Pokud ji v seznamu nevidíte, vyberte ikonu aktualizace vedle rozevíracího seznamu.

  25. Zadejte hodnotu byod-search-index pro Hodnotu názvu indexu .

  26. Zaškrtněte políčko Přidat vektorové vyhledávání do tohoto vyhledávacího prostředku .

  27. V rozevíracím seznamu Vybrat model vložení vyberte model pro vložení ada-002 , který jste vytvořili dříve.

  28. V dialogovém okně Nahrát soubory vyberte Vyhledat soubor.

  29. Přejděte do složky dokumentů zákazníka projektu (nachází se v kořenovém adresáři projektu) a vyberte následující soubory:

    • Instalační Instructions.docxClock A102
    • FAQs.docxspolečnosti

    Poznámka:

    Tato funkce aktuálně podporuje následující formáty souborů pro vytváření místního indexu: .txt, .md, .html, .pdf, .docx a .pptx.

  30. Vyberte Nahrát soubory. Soubory se nahrají do kontejneru fileupload-byod-search-index v prostředku úložiště objektů blob, který jste vytvořili dříve.

  31. Výběrem možnosti Další přejdete do dialogového okna Správa dat .

  32. V rozevíracím seznamu Typ hledání vyberte Hybridní a sémantický.

    Poznámka:

    Tato možnost poskytuje podporu pro hledání klíčových slov a vektorů. Jakmile se výsledky vrátí, použije se sekundární proces řazení na sadu výsledků pomocí modelů hlubokého učení, což zlepšuje relevanci vyhledávání pro uživatele. Další informace o sémantickém vyhledávání najdete v dokumentaci ke sémantickému vyhledávání ve službě Azure AI Search .

  33. Ujistěte se, že je hodnota Vybrat velikost nastavená na 1024.

  34. Vyberte Další.

  35. Jako typ ověřování prostředků Azure vyberte klíč rozhraní API. Další informace o výběru správného typu ověřování najdete v dokumentaci k ověřování Azure AI Search.

  36. Vyberte Další.

  37. Zkontrolujte podrobnosti a vyberte Uložit a zavřít.

  38. Po nahrání vlastních dat se data indexují a budou dostupná pro použití v chatovacím hřišti. Tento proces může trvat několik minut. Po dokončení pokračujte k další části.

Použití vlastního zdroje dat v chatovacím hřišti

  1. V nástroji Azure OpenAI Studio vyhledejte část relace chatu na stránce a zadejte následující dotaz uživatele:

    What safety rules are required to install a clock?
    
  2. Po odeslání uživatelského dotazu by se měl zobrazit výsledek podobný následujícímu zobrazení:

    Chatovací relace ve Studiu Azure OpenAI – Pravidla bezpečné instalace hodin

  3. Rozbalte oddíl s 1 odkazy v odpovědi chatu a všimněte si, že je v seznamu uveden soubor Instructions.docxInstalace hodiny A102 a že ho můžete vybrat pro zobrazení dokumentu.

  4. Zadejte následující zprávu uživatele:

    What should I do to mount the clock on the wall?
    
  5. Měl by se zobrazit výsledek podobný následujícímu zobrazení:

    Chatovací relace Azure OpenAI Studia – pokyny k připojení hodin

  6. Teď experimentujme s dokumentem Nejčastější dotazy společnosti. Do pole Dotazu uživatele zadejte následující text:

    What is the company's policy on vacation time?
    
  7. Měli byste vidět, že pro tuto žádost nebyly nalezeny žádné informace.

  8. Do pole Dotazu uživatele zadejte následující text:

    How should I handle refund requests?
    
  9. Měl by se zobrazit výsledek podobný následujícímu zobrazení:

    Chatovací relace Azure OpenAI Studio – výsledky nejčastějších dotazů

  10. Rozbalte oddíl s 1 odkazy v odpovědi chatu a všimněte si, že je uvedený soubor Společnosti FAQs.docx a že ho můžete vybrat pro zobrazení dokumentu.

  11. Na panelu nástrojů chatovacího hřiště vyberte Zobrazit kód.

    Chatovací relace Azure OpenAI Studio – Zobrazení kódu

  12. Všimněte si, že můžete přepínat mezi různými jazyky, zobrazit koncový bod a získat přístup ke klíči koncového bodu. Zavřete dialogové okno Vzorový kód .

    Chatovací relace Azure OpenAI Studio – ukázkový kód

  13. Zapněte přepínač Zobrazit nezpracovaný JSON nad zprávami chatu. Všimněte si, že relace chatu začíná zprávou podobnou následující:

    {
        "role": "system",
        "content": "You are an AI assistant that helps people find information."
    }
    
  14. Když jste teď vytvořili vlastní zdroj dat a experimentovali s ním v chatovacím hřišti, podívejme se, jak ho můžete použít v aplikaci projektu.

Použití funkce Přineste si vlastní data v aplikaci

  1. Vraťte se k projektu ve VS Code a otevřete soubor .env . Aktualizujte následující hodnoty pomocí koncového bodu služby AI Services, klíče a názvu indexu. Zkopírovali jste koncový bod a klíč do místního souboru dříve v tomto cvičení.

    AZURE_AI_SEARCH_ENDPOINT=<AI_SERVICES_ENDPOINT_VALUE>
    AZURE_AI_SEARCH_KEY=<AI_SERVICES_KEY_VALUE>
    AZURE_AI_SEARCH_INDEX=byod-search-index
    
  2. V předchozím cvičení jste spustili databázi, rozhraní API a aplikaci. Aktualizovali jste také .env soubor. Pokud jste tyto kroky nedokončili, před pokračováním postupujte podle pokynů na konci předchozího cvičení.

  3. Po načtení aplikace v prohlížeči vyberte ikonu nápovědy chatu v pravém horním rohu aplikace.

    Ikona nápovědy chatu

  4. V dialogovém okně chatu by se měl zobrazit následující text:

    How should I handle a company refund request?
    
  5. Vyberte tlačítko Získat nápovědu. Měli byste vidět výsledky vrácené z dokumentu společnosti FAQs.docx , který jste nahráli dříve v nástroji Azure OpenAI Studio. Pokud chcete dokument přečíst, najdete ho ve složce dokumentů zákazníka v kořenovém adresáři projektu.

  6. Změňte text na následující a vyberte tlačítko Získat nápovědu:

    What safety rules are required to install a clock?
    
  7. Měli byste vidět výsledky vrácené z instalačního Instructions.docxdokumentu Hodiny A102 , který jste nahráli dříve v nástroji Azure OpenAI Studio. Tento dokument je také k dispozici ve složce dokumentů zákazníka v kořenovém adresáři projektu.

Zkoumání kódu

Návod

Pokud používáte Visual Studio Code, můžete soubory otevřít přímo tak, že vyberete:

  • Windows/Linux: Ctrl + P
  • Mac: Cmd + P

Potom zadejte název souboru, který chcete otevřít.

  1. Vraťte se ke zdrojovému kódu projektu v editoru Visual Studio Code.

  2. Otevřete soubor serveru nebo apiRoutes.ts a vyhledejte trasu completeBYOD . Toto rozhraní API se volá, když je v dialogovém okně Nápověda chatu vybráno tlačítko Získat nápovědu . Načte výzvu uživatele z textu požadavku a předá ji completeBYOD() funkci v souboru server/openAI.ts . Výsledky se pak vrátí klientovi.

    router.post('/completeBYOD', async (req, res) => {
        const { prompt } = req.body;
    
        if (!prompt) {
            return res.status(400).json({ 
                status: false, 
                error: 'The prompt parameter must be provided.' 
            });
        }
    
        let result;
        try {
            // Call OpenAI to get custom "bring your own data" completion
        result = await completeBYOD(prompt);
        }
        catch (e: unknown) {
            console.error('Error parsing JSON:', e);
        }
    
        res.json(result);
    });
    
  3. Otevřete soubor serveru nebo openAI.ts a vyhledejte completeBYOD() funkci.

    async function completeBYOD(userPrompt: string): Promise<string> {
        const systemPrompt = 'You are an AI assistant that helps people find information in documents.';
        return await callOpenAI(systemPrompt, userPrompt, 0, true);
    }
    

    Tato funkce má následující funkce:

    • Parametr userPrompt obsahuje informace, které uživatel zadal do dialogového okna nápovědy chatu.
    • systemPrompt proměnná definuje, že se použije asistent AI navržený tak, aby pomohl lidem najít informace.
    • callOpenAI() se používá k volání rozhraní API Azure OpenAI a vrácení výsledků. Předává hodnoty systemPrompt a userPrompt také následující parametry:
      • temperature - Množství kreativity, která se má zahrnout do odpovědi. Uživatel potřebuje v tomto případě konzistentní (méně kreativní) odpovědi, takže hodnota je nastavená na 0.
      • useBYOD – Logická hodnota, která označuje, jestli se má použít AI Search spolu s Azure OpenAI. V tomto případě je nastavená tak true , aby se používala funkce vyhledávání AI.
  4. Funkce callOpenAI() přijímá useBYOD parametr, který slouží k určení funkce OpenAI, která se má volat. V tomto případě se nastaví useBYOD tak true , aby getAzureOpenAIBYODCompletion() funkce byla volána.

    function callOpenAI(systemPrompt: string, userPrompt: string, temperature = 0, useBYOD = false) {
        const isAzureOpenAI = OPENAI_API_KEY && OPENAI_ENDPOINT && OPENAI_MODEL;
    
        if (isAzureOpenAI) {
            if (useBYOD) {
                return getAzureOpenAIBYODCompletion(systemPrompt, userPrompt, temperature);
            }
            return getAzureOpenAICompletion(systemPrompt, userPrompt, temperature);
        }
    
        return getOpenAICompletion(systemPrompt, userPrompt, temperature);
    }
    
  5. getAzureOpenAIBYODCompletion() Vyhledejte funkci na serveru nebo openAI.ts. Je to docela podobné getAzureOpenAICompletion() funkci, kterou jste prozkoumali dříve, ale zobrazuje se jako samostatná funkce, která zvýrazní několik klíčových rozdílů, které jsou jedinečné pro scénář Azure OpenAI pro vaše data, který je k dispozici v Azure OpenAI.

    async function getAzureOpenAIBYODCompletion(systemPrompt: string, userPrompt: string, temperature: number): Promise<string> {
        const dataSources = [
            {
                type: 'azure_search',
                parameters: {
                    authentication: {
                        type: 'api_key',
                        key: AZURE_AI_SEARCH_KEY
                    },
                    endpoint: AZURE_AI_SEARCH_ENDPOINT,
                    index_name: AZURE_AI_SEARCH_INDEX
                }
            }
        ];
    
        const completion = await createAzureOpenAICompletion(systemPrompt, userPrompt, temperature, dataSources) as AzureOpenAIYourDataResponse;
        console.log('Azure OpenAI Add Your Own Data Output: \n', completion.choices[0]?.message);
        for (let citation of completion.choices[0]?.message?.context?.citations ?? []) {
            console.log('Citation Path:', citation.filepath);
        }
        return completion.choices[0]?.message?.content?.trim() ?? '';
    }
    

    Všimněte si následujících funkcí funkce getAzureOpenAIBYODCompletion() :

    • Vytvoří dataSources se vlastnost, která obsahuje prostředek keyendpointAI Search a index_name hodnoty přidané do .env souboru dříve v tomto cvičení.
    • Funkce createAzureOpenAICompletion() je volána pomocí systemPrompt, userPrompt, temperaturea dataSources hodnoty. Tato funkce se používá k volání rozhraní API Azure OpenAI a vrácení výsledků.
    • Po vrácení odpovědi se citace dokumentu zaprotokolují do konzoly. Obsah zprávy o dokončení se pak vrátí volajícímu.
  6. Několik posledních bodů, které je potřeba zvážit před přechodem na další cvičení:

    • Ukázková aplikace používá jeden index ve službě Azure AI Search. V Azure OpenAI můžete použít více indexů a zdrojů dat. Vlastnost dataSources ve getAzureOpenAIBYODCompletion() funkci lze podle potřeby aktualizovat tak, aby zahrnovala více zdrojů dat.
    • Zabezpečení musí být pečlivě vyhodnoceno pomocí tohoto typu scénáře. Uživatelé by se neměli moct ptát a získávat výsledky z dokumentů, ke kterým nemají přístup.
  7. Teď, když jste se seznámili s Azure OpenAI, výzvami, dokončováními a možnostmi použití vlastních dat, přejděme k dalšímu cvičení, kde se dozvíte, jak se dají komunikační funkce použít k vylepšení aplikace. Pokud chcete získat další informace o Azure OpenAI, podívejte se na školicí obsah začínáme se službou Azure OpenAI Service . Další informace o používání vlastních dat s Azure OpenAI najdete v dokumentaci k datům v Azure OpenAI .

Další krok