Inhaltsverzeichnis
Azure Search einrichten" >Azure Search einrichten
für die Vorbereitung der Azure Semantic Search der Index " > für die Vorbereitung der Azure Semantic Search der Index
Integration mit OpenAI" >Integration mit OpenAI
Fazit" >Fazit
Heim Technologie-Peripheriegeräte KI Verwendung von Azure Semantic Search und OpenAI zum Aufbau eines kognitiven Suchsystems

Verwendung von Azure Semantic Search und OpenAI zum Aufbau eines kognitiven Suchsystems

Oct 12, 2023 am 10:18 AM
azure openal

Im heutigen digitalen Zeitalter sind robuste, skalierbare und effiziente Systeme mehr als nur ein Wettbewerbsvorteil; Das ist notwendig. Unabhängig davon, ob Sie die Verarbeitung von Benutzereingaben optimieren möchten, um die Dokumentsuche zu vereinfachen, ist eine Kombination aus Diensten und Plattformen der Schlüssel zu beispielloser Leistung. In diesem Artikel untersuchen wir einen ganzheitlichen Ansatz, der die Leistungsfähigkeit von Azure Cognitive Services mit den Funktionen von OpenAI kombiniert. Indem Sie sich mit Absichtserkennung, Dokumentenfilterung, domänenspezifischen Algorithmen und Textzusammenfassung befassen, lernen Sie, ein System zu erstellen, das nicht nur die Absicht des Benutzers versteht, sondern auch Informationen effizient verarbeitet und präsentiert.

Wir werden Folgendes erstellen:

Verwendung von Azure Semantic Search und OpenAI zum Aufbau eines kognitiven Suchsystems

Umgebung einrichten

Bevor wir loslegen, stellen wir sicher, dass die erforderlichen Pakete installiert und Umgebungsvariablen festgelegt sind:

!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'
Nach dem Login kopieren

Hier verwenden wir die erforderlichen API-Schlüssel, Endpunkte und Typen zum Einrichten der OpenAI-Umgebung.

Azure Search einrichten

Um Azure Semantic Search nutzen zu können, müssen wir die notwendigen Module importieren und die Umgebung einrichten.

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
)
Nach dem Login kopieren

Nach dem Importieren des Moduls können wir jetzt den Azure Search-Dienstendpunkt und den API-Schlüssel einrichten:

# 从环境中设置服务端点和 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))
Nach dem Login kopieren

(Hinweis: Stellen Sie sicher, dass Sie Ihren Schlüssel maskieren oder verbergen, bevor Sie Code freigeben.)

für die Vorbereitung der Azure Semantic Search der Index

Bevor wir Daten zu Azure Search hinzufügen, müssen wir einen Index definieren, der die Struktur der Daten beschreibt:

# 删除索引(如果存在)
try:
    result = admin_client.delete_index(index_name)
    print ('Index', index_name, 'Deleted')
except Exception as ex:
    print (ex)
Nach dem Login kopieren

Dieses Codefragment stellt sicher, dass der Index gelöscht wird, wenn er bereits vorhanden ist. Dies ist nützlich, wenn Sie Code erneut ausführen oder Indizes ändern.

Jetzt geben wir das Schema des Index an:

# 指定索引模式
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' : [ '标签' , '地址/城市' , '地址/国家' ]}]
Nach dem Login kopieren

Als nächstes müssen Sie diesen Index auf Azure erstellen:

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)
Nach dem Login kopieren

Nach dem Erstellen des Index müssen wir ihn mit Dokumenten füllen. Es ist wichtig darauf hinzuweisen, dass es sich um jede Art von Dokument handeln kann! Ich füge hier einfach manuell die Dokumente hinzu, die im Blob-Speicher verbleiben:

文档 = [ 
    { 
    "@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”:“美国”
         } 
    }
]
Nach dem Login kopieren

Schieben Sie diese Dokumente nun in den semantischen Suchindex.

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)
Nach dem Login kopieren

Integration mit OpenAI

Lassen Sie uns eine Verbindung zu OpenAI herstellen:

question="What is the address of ChatGpt Hotel?"
Nach dem Login kopieren

Dann fügen Sie eine Azure OpenAI-Verbindung hinzu:

###
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)
Nach dem Login kopieren

An diesem Punkt können Sie Semantic Search und Azure OpenAI verwenden. Lassen Sie uns die semantische Suche abfragen:

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)
Nach dem Login kopieren

Mit den vorliegenden Suchergebnissen können wir jetzt Azure OpenAI nutzen, um die Ergebnisse zu interpretieren oder weiterzuverarbeiten.

# 创建消息列表来跟踪对话
messages = [{"sender": "user", "text": "Hello, take into account the following information "+json_results},
            {"sender": "user", "text": question},
            ]
response = openai.Completion.create(
  engine=deployment_name,
  prompt= create_prompt(system_message, messages),
  temperature=0.7,
  max_tokens=800,
  top_p=0.95,
  frequency_penalty=0,
  presence_penalty=0,
    stop=["<|im_end|>"])
print(response)
Nach dem Login kopieren

Dieser Code fordert das OpenAI-Modell mit Suchergebnissen und unserer ursprünglichen Frage auf, sodass es auf der Grundlage der Daten aussagekräftige Informationen verarbeiten und bereitstellen kann.

Fazit

In diesem Artikel haben wir erfahren, wie wir die Leistungsfähigkeit der Azure Semantic Search mit den Funktionen von OpenAI kombinieren können. Durch die Integration dieser beiden leistungsstarken Tools können wir Benutzern umfassende, intelligente Suchergebnisse in unseren Anwendungen bereitstellen.

Das obige ist der detaillierte Inhalt vonVerwendung von Azure Semantic Search und OpenAI zum Aufbau eines kognitiven Suchsystems. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Fehlercode 801c03ed: So beheben Sie ihn unter Windows 11 Fehlercode 801c03ed: So beheben Sie ihn unter Windows 11 Oct 04, 2023 pm 06:05 PM

Fehler 801c03ed wird normalerweise von der folgenden Meldung begleitet: Die Administratorrichtlinie erlaubt diesem Benutzer nicht, dem Gerät beizutreten. Diese Fehlermeldung verhindert, dass Sie Windows installieren und sich einem Netzwerk anschließen können, wodurch Sie Ihren Computer nicht mehr verwenden können. Daher ist es wichtig, dieses Problem so schnell wie möglich zu beheben. Was ist der Fehlercode 801c03ed? Dies ist ein Windows-Installationsfehler, der aus folgendem Grund auftritt: Das Azure-Setup lässt keinen Beitritt neuer Benutzer zu. Geräteobjekte sind in Azure nicht aktiviert. Hardware-Hash-Fehler im Azure-Panel. Wie behebe ich den Fehlercode 03c11ed unter Windows 801? 1. Überprüfen Sie die Intune-Einstellungen. Melden Sie sich beim Azure-Portal an. Navigieren Sie zu Geräte und wählen Sie Geräteeinstellungen. Ändern Sie „Benutzer können

was ist offen was ist offen Aug 21, 2023 pm 04:16 PM

OpenAL ist eine offene, plattformübergreifende Audiobibliothek für die Wiedergabe und Mischung von 3D-Audio und Mehrkanal-Audio. Sie wurde von Creative Labs entwickelt und ursprünglich für die Spieleentwicklung verwendet, wird aber heute häufig in Multimedia-Anwendungen, Virtual Reality usw. verwendet. Augmented Reality und Audiobearbeitung. OpenAL stellt Entwicklern eine API zur Steuerung von Audioeffekten zur Verfügung, die für die Entwicklung von Spielen, Multimediaanwendungen und anderer audiobezogener Software verwendet werden kann.

Verwendung von Azure Semantic Search und OpenAI zum Aufbau eines kognitiven Suchsystems Verwendung von Azure Semantic Search und OpenAI zum Aufbau eines kognitiven Suchsystems Oct 12, 2023 am 10:18 AM

Eine Kombination aus Diensten und Plattformen wurde entwickelt, um die Dokumentensuche zu vereinfachen und ist der Schlüssel zu einer beispiellosen Leistung. In diesem Artikel untersuchen wir einen ganzheitlichen Ansatz, der die Leistungsfähigkeit von Azure Cognitive Services mit den Funktionen von OpenAI kombiniert. Indem Sie sich mit Absichtserkennung, Dokumentenfilterung, domänenspezifischen Algorithmen und Textzusammenfassung befassen, lernen Sie, ein System zu erstellen, das nicht nur die Absicht des Benutzers versteht, sondern auch Informationen effizient verarbeitet und präsentiert.

Der Microsoft Azure OpenAI-Dienst unterstützt jetzt GPT-4 Turbo mit Vision Der Microsoft Azure OpenAI-Dienst unterstützt jetzt GPT-4 Turbo mit Vision Dec 18, 2023 am 08:18 AM

Laut Nachrichten dieser Website vom 17. Dezember bietet der Azure OpenAI-Dienst REST-API-Zugriff auf die leistungsstarken Sprachmodelle von OpenAI, darunter GPT-4, GPT-3.5-Turbo und eingebettete Modellreihen. Microsoft kündigte weitere Verbesserungen des Azure OpenAI-Dienstes an und stellte Kunden eine öffentliche Vorschauversion des neuesten GPT-4 Turbo mit Vision zur Verfügung. Dieses fortschrittliche multimodale KI-Modell übernimmt alle leistungsstarken Funktionen von GPT-4 Turbo und fügt außerdem Bildverarbeitung und hinzu Analysefähigkeit. Dies eröffnet die Möglichkeit, GPT-4 für weitere Aufgaben zu nutzen, wie z. B. die Verbesserung der Zugänglichkeit, die Interpretation und Analyse von Datenvisualisierungen usw

Microsoft Azure wird ab Oktober eine obligatorische Multi-Faktor-Authentifizierung einführen Microsoft Azure wird ab Oktober eine obligatorische Multi-Faktor-Authentifizierung einführen Aug 17, 2024 am 07:40 AM

Laut Nachrichten dieser Website vom 16. August hat Microsoft gestern eine Ankündigung herausgegeben, dass es die Multi-Faktor-Authentifizierung (MFA) ab Oktober durchsetzen wird, um die Möglichkeit von Konto-Hackern zu verringern. Laut Microsoft kann MFA mehr als 99,2 % solcher Angriffe zur Kontokompromittierung verhindern, daher ist die Maßnahme obligatorisch. Berichten zufolge wird dieser Prozess schrittweise in zwei Phasen implementiert. Diese Website fasst ihn wie folgt zusammen: Phase 1: Ab Oktober ist eine MFA-Anmeldung beim Azure-Portal, Microsoft Entra Management Center und Intune Management Center erforderlich Es hat keine Auswirkungen auf andere Azure-Clients. Phase 2: Ab Anfang 2025 werden die MFA-Anforderungen schrittweise auf andere Azure-Clients wie Azure ausgeweitet

Was nützt openal? Was nützt openal? Aug 21, 2023 pm 04:30 PM

Zu den Funktionen von Openal gehören 3D-Soundeffekte, Mehrkanal-Audio, räumliche Audiopositionierung, Unterstützung von Audioformaten, Verarbeitung von Audioeffekten, plattformübergreifende Unterstützung und andere Funktionen. Detaillierte Einführung: 1. 3D-Soundeffekte, OpenAL kann echte 3D-Soundeffekte simulieren. Durch die Steuerung der Position, Richtung, Entfernung und Lautstärke der Audioparameter kann der Hörer den Ton aus verschiedenen Richtungen und Entfernungen spüren , OpenAL Unterstützt die Wiedergabe und Mischung von Mehrkanal-Audio und kann mehrere Tonquellen gleichzeitig abspielen und mischen. 3. Raumpositionierung von Audio usw.

Microsoft Security erweitert die Benutzerschutzfunktionen um Multi-Cloud-Funktionen Microsoft Security erweitert die Benutzerschutzfunktionen um Multi-Cloud-Funktionen Apr 24, 2023 pm 09:07 PM

Microsoft hat detailliert dargelegt, wie es seine Kunden durch die Integration von Multi-Cloud-Unterstützung in seine primäre Sicherheitsstrategie weiter schützen will. Dementsprechend möchte das Unternehmen neue Funktionen und Weiterentwicklungen einführen, um die Sicherheit und Kontrolle aus zentraler Managementperspektive zu stärken. Um seinen Kunden einfachere Sicherheitslösungen vorzustellen, damit sie die Verwaltung von Multi-Cloud-Umgebungen nicht als Herausforderung empfinden, hat Microsoft beschlossen, „die nativen Funktionen von Microsoft Defender for Cloud auf die Google Cloud Platform (GCP)“ auszudehnen. Dank der Unterstützung von GCP ist Microsoft der einzige Cloud-Anbieter, der nativen Multi-Cloud-Schutz für die drei führenden Plattformen der Branche bietet: Microsoft Azure, Amazon Web Services (AWS)

Windows Server VNext Preview Build 25099 jetzt verfügbar Windows Server VNext Preview Build 25099 jetzt verfügbar Apr 14, 2023 pm 01:55 PM

Microsoft hat eine neue Version von Windows Server Insider Preview veröffentlicht. Der Build 25099 dieser Woche steht jetzt zum Download in ISO und VHDX von der Windows Server Insider-Website zur Verfügung, aber wie üblich gibt es kein nennenswertes vollständiges Änderungsprotokoll, sodass unklar ist, was es Neues gibt. Microsoft sagte erneut, dass die Marke nicht aktualisiert wurde und sich Windows Server 2022 noch in der Vorschau befindet. Darüber hinaus ermutigt Microsoft Insider, an Azure zu arbeiten

See all articles