


Verwendung von Azure Semantic Search und OpenAI zum Aufbau eines kognitiven Suchsystems
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:
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'
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 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))
(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)
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' : [ '标签' , '地址/城市' , '地址/国家' ]}]
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 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”:“美国” } } ]
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)
Integration mit OpenAI
Lassen Sie uns eine Verbindung zu OpenAI herstellen:
question="What is the address of ChatGpt Hotel?"
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['sender'], message['text']) 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)
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='HotelId,HotelName,Tags,Address')= search_client.search(search_text=question, include_total_count=True, select='HotelId,HotelName,Tags,Address') json_results="" print ('Total Documents Matching Query:', results.get_count()) for result in results: #print("{}: {}: {}".format(result["HotelId"], result["HotelName"], result["Tags"],results["Address"])) json_results+=str(result) print(json_results)
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)
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

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

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.

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.

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

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

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 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)

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
