Jadual Kandungan
Sediakan Azure Search" >Sediakan Azure Search
untuk Penyediaan Carian Semantik Azure indeks " > untuk Penyediaan Carian Semantik Azure indeks
Integrasi dengan OpenAI" >Integrasi dengan OpenAI
Kesimpulan" >Kesimpulan
Rumah Peranti teknologi AI Menggunakan Azure Semantic Search dan OpenAI untuk membina sistem carian kognitif

Menggunakan Azure Semantic Search dan OpenAI untuk membina sistem carian kognitif

Oct 12, 2023 am 10:18 AM
azure openal

Dalam era digital hari ini, mempunyai sistem yang teguh, berskala dan cekap adalah lebih daripada sekadar kelebihan daya saing; Ini adalah perlu. Sama ada anda berusaha untuk mengoptimumkan pemprosesan input pengguna untuk memudahkan carian dokumen, gabungan perkhidmatan dan platform adalah kunci kepada prestasi yang tiada tandingan. Dalam artikel ini, kami akan meneroka pendekatan holistik yang menggabungkan kuasa Perkhidmatan Kognitif Azure dengan keupayaan OpenAI. Dengan mendalami pengecaman niat, penapisan dokumen, algoritma khusus domain dan ringkasan teks, anda akan belajar untuk mencipta sistem yang bukan sahaja memahami niat pengguna tetapi juga memproses dan mempersembahkan maklumat dengan cekap.

Kami akan membina ini:

Menggunakan Azure Semantic Search dan OpenAI untuk membina sistem carian kognitif

Menyediakan persekitaran

Sebelum kita menyelam, mari pastikan kita telah memasang pakej yang diperlukan dan pembolehubah persekitaran ditetapkan:

rreee

Di sini kita menggunakan API yang diperlukan titik akhir dan jenis untuk menyediakan persekitaran OpenAI.

Sediakan Azure Search

Untuk menggunakan Azure Semantic Search, kami perlu mengimport modul yang diperlukan dan menyediakan persekitaran.

!pip show azure-search-documents
%pip install azure-search-documents --pre
%pip show azure-search-documents
!pip install python-dotenv
!pip install openai
import os
import requests
import json
import openai
openai.api_key = os.getenv("AZURE_OPENAI_KEY")
openai.api_base = os.getenv("AZURE_OPENAI_ENDPOINT")
openai.api_type = 'azure'
openai.api_version = '2023-05-15'
# Look in Azure OpenAI Studio > Deployments
deployment_name = 'gpt-35-turbo'
Salin selepas log masuk

Selepas mengimport modul, kini kami boleh menyediakan titik akhir perkhidmatan Azure Search dan kunci API:

import os
from azure.core.credentials import AzureKeyCredential
from azure.search.documents.indexes import SearchIndexClient
from azure.search.documents import SearchClient
from azure.search.documents.indexes.models import (
    ComplexField,
    CorsOptions,
    SearchIndex,
    ScoringProfile,
    SearchFieldDataType,
    SimpleField,
    SearchableField
)
Salin selepas log masuk

(Nota: Pastikan untuk menutup atau menyembunyikan kunci anda sebelum berkongsi sebarang kod.)

untuk Penyediaan Carian Semantik Azure indeks

Sebelum menambah data pada Carian Azure, kita perlu mentakrifkan indeks yang menerangkan struktur data:

# 从环境中设置服务端点和 API 密钥
service_name = "xxxxx"
admin_key ="xxxxx"
# 如果您共享密钥 - 请确保您的 index_name 是唯一的!
index_name = "hotels-quickstart"
# 创建 SDK 客户
endpoint = "https://{}.search.windows.net/".format(service_name)
admin_client = SearchIndexClient(endpoint=endpoint,
                      index_name=index_name,
                      credential=AzureKeyCredential(admin_key))

search_client = SearchClient(endpoint=endpoint,
                      index_name=index_name,
                      credential=AzureKeyCredential(admin_key))
Salin selepas log masuk

Coretan kod ini memastikan bahawa jika indeks sudah wujud, ia dipadamkan. Ini berguna apabila menjalankan semula kod atau menukar indeks.

Sekarang, mari tentukan skema indeks:

# 删除索引(如果存在)
try:
    result = admin_client.delete_index(index_name)
    print ('Index', index_name, 'Deleted')
except Exception as ex:
    print (ex)
Salin selepas log masuk

Seterusnya, anda perlu mencipta indeks ini pada Azure:

# 指定索引模式
name = index_name 
fields = [ 
        SimpleField(name= "HotelId" , type=SearchFieldDataType.String, key= True ), 
        SearchableField(name= "HotelName" , type=SearchFieldDataType.String, sortable= True ), 
        SearchableField (名称= “描述”,类型=SearchFieldDataType.String,analyzer_name= “en.lucene”),
        SearchableField(名称= “Description_fr”,类型=SearchFieldDataType.String,analyzer_name= “fr.lucene”),
        SearchableField(名称= “类别”、 type=SearchFieldDataType.String、facetable= True、filterable= True、sortable= True )、
        SearchableField(name= "Tags"、collection= True、type=SearchFieldDataType.String、facetable= True、filterable= True )、
        SimpleField(name = “ParkingInincluded”,类型=SearchFieldDataType.Boolean,facetable= True,filterable= True,sortable= True),
        SimpleField(name= “LastRenovationDate”,type=SearchFieldDataType.DateTime关闭设置,facetable= True,filterable=True、sortable= True )、
        SimpleField(name= "Rating"、 type=SearchFieldDataType.Double、facetable= True、filterable= True、sortable= True )、
        ComplexField(name= "地址"、 fields=[ 
            SearchableField(name= " StreetAddress"、 type=SearchFieldDataType.String)、
            SearchableField(name= "City"、 type=SearchFieldDataType.String、facetable= True、 filterable= True、 sortable= True )、
            SearchableField(name= "StateProvince"、 type=SearchFieldDataType.String、facetable= True、filterable= True、sortable= True )、
            SearchableField(name= "邮政编码"、 type=SearchFieldDataType.String、facetable= True、filterable= True、sortable= True )、
            SearchableField(name = “国家”,类型= SearchFieldDataType.String,facetable = True,filterable = True,sortable = True),
        ])
    ] 
cors_options = CorsOptions(allowed_origins = [ “*” ],max_age_in_seconds = 60)
Scoring_profiles = [] 
suggester = [{ 'name' : 'sg' , 'source_fields' : [ '标签' , '地址/城市' , '地址/国家' ]}]
Salin selepas log masuk

Selepas mencipta indeks, kita perlu mengisinya dengan dokumen. Adalah penting untuk menunjukkan bahawa ia boleh menjadi apa-apa jenis dokumen! Saya hanya menambah secara manual dokumen yang akan kekal dalam storan gumpalan di sini:

index = SearchIndex(
    name=name,
    fields=fields,
    scoring_profiles=scoring_profiles,
    suggesters = suggester,
    cors_options=cors_options)
try:
    result = admin_client.create_index(index)
    print ('Index', result.name, 'created')
except Exception as ex:
    print (ex)
Salin selepas log masuk

Sekarang tolak dokumen ini ke indeks carian semantik.

文档 = [ 
    { 
    "@search.action": "上传", "@search.action" : "上传" , 
    "HotelId" : "1" , 
    "HotelName" : "秘密点汽车旅馆" , 
    "Description" : "酒店地理位置优越,位于纽约市中心的城市主要商业干道上。几分钟即可到达时代广场和城市的历史中心,以及使纽约成为美国最具吸引力的城市之一的其他名胜古迹和国际大都市。” ,
    “Description_fr”:“L'hôtel est idéalement situé sur la prime artère Commerciale de la ville en plein cœur de New York.A insi que d'autres lieux d'intérêt qui font纽约的城市充满魅力和美国的国际化。” , 
    "Category" : "精品店" , 
    "Tags" : [ "游泳池" , "空调" , "礼宾服务" ], 
    "ParkingInincluded" : "false" , 
    "LastRenovationDate" : "1970-01-18T00:00:00Z ”,
    "Rating" : 3.60 , 
    "Address" : {    
        “StreetAddress”:“677 第五大道”,
        “City”:“纽约”,
        “StateProvince”:“纽约” ,
        “PostalCode”:“10022”,
        “Country”:“美国”
         } 
    },
    { 
    “@search. action" : "上传" , 
    "HotelId" : "2" , 
    "HotelName" : "双圆顶汽车旅馆" , 
    "Description" :“该酒店坐落在一座十九世纪的广场上,该广场已按照最高建筑标准进行扩建和翻新,打造出一座现代化、实用的一流酒店,艺术和独特的历史元素与最现代的舒适设施共存。” , 
    "Description_fr" : "L'hôtel 位于十九世纪的地方,是一座现代化酒店的高级规范建筑,在艺术和历史独特方面具有一流的功能和一流的设计舒适与现代共存。” , 
    "Category" : "精品店" , 
    "Tags" : [ "泳池" ,], 
    "ParkingInincluded" : "false" , 
    "LastRenovationDate" : "1979-02-18T00:00:00Z" , 
    "Rating" : 3.60 , 
    "Address" : { 
        "StreetAddress" : "140 大学城中心" , 
        "City”:“萨拉索塔”,
        “StateProvince”:“佛罗里达州”,
        “PostalCode”:“34243”,
        “Country”:“美国”
         } 
    },
    { 
    "@search.action" : "上传" , 
    "HotelId" :"3" , 
    "HotelName" : "三重景观酒店" , 
    "Description" : "该酒店在 William Dough 的管理下以其卓越的美食脱颖而出,他为酒店的所有餐厅服务提供建议并监督。" , 
    "Description_fr" : "L'hôtel 位于十九世纪的地方,是一座现代化酒店的高级规范建筑,在艺术和历史独特方面具有一流的功能和一流的设计舒适与现代共存。” , 
    "Category" : "度假村中心" ,
    "Tags" : [ "酒吧" , "欧陆式早餐" ], 
    "ParkingInincluded" : "true" , 
    "LastRenovationDate" : "2015-09-20T00:00:00Z" , 
    "Rating" : 4.80 , 
    "Address" : { 
        "StreetAddress" : “3393 Peachtree Rd”、
        “City”:“亚特兰大”、
        “StateProvince”:“GA”、
        “PostalCode”:“30326”、
        “Country”:“美国”
         } 
    }
]
Salin selepas log masuk

Integrasi dengan OpenAI

Mari kita buat sambungan ke OpenAI:

try:
    result = search_client.upload_documents(documents=documents)
    print("Upload of new document succeeded: {}".format(result[0].succeeded))
except Exception as ex:
    print (ex.message)
Salin selepas log masuk

Kemudian, tambah sambungan Azure OpenAI:

question="What is the address of ChatGpt Hotel?"
Salin selepas log masuk

Pada ketika ini, anda boleh menggunakan Carian Semantik dan Azure OpenAI Mari kita bertanya Carian Semantik:

###
import os
import requests
import json
import openai
os.environ["AZURE_OPENAI_KEY"] = "xxxx"
os.environ["AZURE_OPENAI_ENDPOINT"] = "xxxx"
openai.api_key = os.getenv("AZURE_OPENAI_KEY")
openai.api_base = os.getenv("AZURE_OPENAI_ENDPOINT")
openai.api_type = 'azure'
openai.api_version = '2023-05-15'
# 在 Azure OpenAI Studio > 部署中查找
deployment_name = 'gpt-35-turbo'
###
# 定义一个函数,根据系统消息和消息创建提示
def create_prompt(system_message, messages):
    prompt = system_message
    message_template = "\n<|im_start|>{}\n{}\n<|im_end|>"
    for message in messages:
        prompt += message_template.format(message[&#39;sender&#39;], message[&#39;text&#39;])
    prompt += "\n<|im_start|>assistant\n"
    return prompt
# 定义系统消息
system_message_template = "<|im_start|>system\n{}\n<|im_end|>"
system_message = system_message_template.format("")
print(system_message)
Salin selepas log masuk

Dengan hasil carian di tangan, kami kini boleh memanfaatkan Azure OpenAI untuk mentafsir atau memproses keputusan selanjutnya.

import json
results =  search_client.search(search_text=question, include_total_count=True, select=&#39;HotelId,HotelName,Tags,Address&#39;)=  search_client.search(search_text=question, include_total_count=True, select=&#39;HotelId,HotelName,Tags,Address&#39;)
json_results=""
print (&#39;Total Documents Matching Query:&#39;, results.get_count())
for result in results:
    #print("{}: {}: {}".format(result["HotelId"], result["HotelName"], result["Tags"],results["Address"]))
    json_results+=str(result)
print(json_results)
Salin selepas log masuk

Kod ini menggesa model OpenAI dengan hasil carian dan soalan asal kami, membolehkannya memproses dan memberikan maklumat yang bermakna berdasarkan data.

Kesimpulan

Dalam artikel ini, kami mempelajari cara menggabungkan kuasa Azure Semantic Search dengan keupayaan OpenAI. Dengan menyepadukan dua alatan berkuasa ini, kami boleh menyediakan pengguna hasil carian yang kaya dan pintar dalam aplikasi kami.

Atas ialah kandungan terperinci Menggunakan Azure Semantic Search dan OpenAI untuk membina sistem carian kognitif. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kod ralat 801c03ed: Bagaimana untuk membetulkannya pada Windows 11 Kod ralat 801c03ed: Bagaimana untuk membetulkannya pada Windows 11 Oct 04, 2023 pm 06:05 PM

Ralat 801c03ed biasanya disertakan dengan mesej berikut: Dasar pentadbir tidak membenarkan pengguna ini menyertai peranti. Mesej ralat ini akan menghalang anda daripada memasang Windows dan menyertai rangkaian, dengan itu menghalang anda daripada menggunakan komputer anda, jadi adalah penting untuk menyelesaikan isu ini secepat mungkin. Apakah kod ralat 801c03ed? Ini ialah ralat pemasangan Windows yang berlaku atas sebab berikut: Persediaan Azure tidak membenarkan pengguna baharu untuk menyertai. Objek peranti tidak didayakan pada Azure. Kegagalan cincang perkakasan dalam panel Azure. Bagaimana untuk membetulkan kod ralat 03c11ed pada Windows 801? 1. Semak tetapan Intune Log masuk ke portal Azure. Navigasi ke Peranti dan pilih Tetapan Peranti. Tukar "Pengguna boleh

apa yang terbuka apa yang terbuka Aug 21, 2023 pm 04:16 PM

OpenAL ialah perpustakaan audio merentas platform terbuka untuk mengendalikan main balik dan mencampurkan audio 3D dan audio berbilang saluran Ia dibangunkan oleh Creative Labs dan pada asalnya digunakan untuk pembangunan permainan, tetapi kini digunakan secara meluas dalam aplikasi multimedia, Realiti maya. realiti tambahan dan penyuntingan audio. OpenAL menyediakan pembangun dengan API untuk mengawal kesan audio, yang boleh digunakan untuk pembangunan permainan, aplikasi multimedia dan perisian berkaitan audio yang lain.

Menggunakan Azure Semantic Search dan OpenAI untuk membina sistem carian kognitif Menggunakan Azure Semantic Search dan OpenAI untuk membina sistem carian kognitif Oct 12, 2023 am 10:18 AM

Direka bentuk untuk memudahkan carian dokumen, gabungan perkhidmatan dan platform adalah kunci kepada prestasi yang tiada tandingan. Dalam artikel ini, kami akan meneroka pendekatan holistik yang menggabungkan kuasa Perkhidmatan Kognitif Azure dengan keupayaan OpenAI. Dengan mendalami pengecaman niat, penapisan dokumen, algoritma khusus domain dan ringkasan teks, anda akan belajar untuk mencipta sistem yang bukan sahaja memahami niat pengguna tetapi juga memproses dan mempersembahkan maklumat dengan cekap.

Perkhidmatan Microsoft Azure OpenAI kini menyokong GPT-4 Turbo dengan Vision Perkhidmatan Microsoft Azure OpenAI kini menyokong GPT-4 Turbo dengan Vision Dec 18, 2023 am 08:18 AM

Menurut berita dari tapak ini pada 17 Disember, perkhidmatan Azure OpenAI menyediakan akses API REST kepada model bahasa OpenAI yang berkuasa, termasuk GPT-4, GPT-3.5-Turbo dan siri model terbenam. Microsoft mengumumkan peningkatan lanjut pada perkhidmatan Azure OpenAI dan menyediakan pelanggan versi pratonton awam GPT-4 Turbo dengan Vision Model AI berbilang mod termaju ini mewarisi semua ciri berkuasa GPT-4 Turbo dan juga menambah pemprosesan imej dan kebolehan. Ini membuka peluang untuk memanfaatkan GPT-4 untuk lebih banyak tugas, seperti meningkatkan kebolehcapaian, mentafsir dan menganalisis visualisasi data, dan

Microsoft Azure akan melancarkan pengesahan pelbagai faktor mandatori mulai bulan Oktober Microsoft Azure akan melancarkan pengesahan pelbagai faktor mandatori mulai bulan Oktober Aug 17, 2024 am 07:40 AM

Menurut berita dari laman web ini pada 16 Ogos, Microsoft telah mengeluarkan pengumuman semalam, mengumumkan bahawa ia akan menguatkuasakan fungsi pengesahan berbilang faktor (MFA) mulai Oktober untuk membantu mengurangkan kemungkinan penggodaman akaun. Microsoft berkata MFA boleh menghalang lebih daripada 99.2% daripada serangan kompromi akaun sedemikian, jadi langkah itu adalah wajib. Menurut laporan, proses ini akan dilaksanakan secara beransur-ansur dalam dua fasa Tapak ini meringkaskannya seperti berikut: Fasa 1: Bermula dari Oktober, MFA akan diperlukan untuk log masuk ke portal Azure, Pusat Pengurusan Microsoft Entra dan Pusat Pengurusan Intune, tetapi. ia tidak akan menjejaskan pelanggan Azure yang lain. Fasa 2: Bermula pada awal 2025, keperluan MFA akan berkembang secara beransur-ansur kepada pelanggan Azure yang lain, seperti Azure

Microsoft menetapkan rekod pertahanan sebagai tindak balas kepada serangan DDoS 3.47 Tbps Microsoft menetapkan rekod pertahanan sebagai tindak balas kepada serangan DDoS 3.47 Tbps Apr 22, 2023 am 08:52 AM

Microsoft secara tidak sengaja menetapkan rekod baharu pada November lalu apabila ia mengurangkan serangan DDoS (penafian perkhidmatan teragih) 3.47Tbps. Dalam catatan blog, gergasi Redmond berkongsi data perlindungan Azure DDoS untuk suku ketiga 2021. Syarikat itu menyatakan bahawa bilangan serangan DDoS meningkat pada separuh kedua 2021. DDoS ialah kaedah serangan popular yang boleh digunakan oleh sesiapa sahaja kerana harga perkhidmatan serangan yang rendah. Pada separuh kedua 2021, Microsoft mengurangkan purata 1,955 serangan setiap hari, peningkatan sebanyak 40% daripada separuh pertama tahun itu. Walau bagaimanapun, ini tidak begitu baik berbanding dengan 4,296 serangan yang dikurangkan pada 10 Ogos 2021. secara keseluruhan,

Windows Server VNext Preview Build 25099 Kini Tersedia Windows Server VNext Preview Build 25099 Kini Tersedia Apr 14, 2023 pm 01:55 PM

Microsoft telah mengeluarkan versi baharu Windows Server Insider Preview. Binaan 25099 minggu ini kini tersedia untuk dimuat turun dalam ISO dan VHDX daripada tapak web Windows Server Insider, tetapi seperti biasa, tiada log perubahan penuh untuk diperkatakan, jadi tidak jelas apa yang baharu. Microsoft sekali lagi berkata bahawa jenama itu belum dikemas kini dan masih Windows Server 2022 dalam pratonton. Selain itu, Microsoft menggalakkan orang dalam bekerja pada Azure

Penterjemah Azure kini boleh mengimbas dan menterjemah dokumen PDF Penterjemah Azure kini boleh mengimbas dan menterjemah dokumen PDF May 14, 2023 pm 08:13 PM

Microsoft telah mengumumkan bahawa ciri terjemahan dokumen yang terbina dalam Azure Translator kini boleh mengimbas dan menterjemah dokumen PDF. Syarikat itu berkata pengguna tidak lagi perlu pra-memproses dokumen melalui enjin OCR sebelum cuba menterjemahkannya. Ciri terjemahan dokumen, yang pertama kali dilancarkan setahun lalu, mampu menterjemah berbilang dokumen ke dalam lebih daripada 110 bahasa dan dialek sekaligus. Kemas kini hari ini bermakna fail PDF serta fail Word dan PowerPoint kini disokong sepenuhnya. Menurut syarikat itu, dapat mengimbas PDF dengan kandungan imej yang diimbas adalah sangat diingini. Menjelaskan beberapa ciri, Microsoft berkata: Perkhidmatan Terjemahan Fail kini mempunyai kecerdasan untuk mengenal pasti sama ada dokumen PDF mengandungi kandungan imej yang diimbas,

See all articles