Ich frage Azure AI Search über Open WebUI ab (Docker unter WSL Ubuntu 24). Das azure-search-documents SDK schlägt mit Fehlern bei der SSL-Zertifikatsüberprüfung fehl, aber der gleiche Code funktioniert einwandfrei im Windows Jupyter-Notebook.
Fehler:
[SSL: CERTIFICATE_VERIFY_FAILED] Zertifikatüberprüfung fehlgeschlagen: Lokales Ausstellerzertifikat konnte nicht abgerufen werden (_ssl.c:1016)
Umgebung:
Docker-Container auf WSL Ubuntu 24
Python 3.11.13
Unternehmensnetzwerk mit benutzerdefinierten Root-CA-Zertifikaten und Zscaler-Proxy
Azure OpenAI-Aufrufe funktionieren problemlos aus derselben Docker-Umgebung mit aiohttp
Code, der fehlschlägt:
Code: Select all
from azure.search.documents import SearchClient
from azure.search.documents.models import VectorizableTextQuery
from azure.core.credentials import AzureKeyCredential
credential = AzureKeyCredential(api_key)
search_client = SearchClient(
endpoint="https://gherkinrag-search.search.windows.net",
credential=credential,
index_name="py-gherkin-idx",
> )
results = search_client.search(
search_text=None,
vector_queries=[VectorizableTextQuery(text=query, k_nearest_neighbors=5, fields="text_vector")],
select=["chunks"],
top=3,
> )
Firmen-Root-CA-Zertifikate von Windows exportiert, in PEM konvertiert, zu /usr/local/share/ca-certificates/ hinzugefügt, update-ca-certificates ausgeführt (hinzugefügt bestätigt)
Umgebungsvariablen festlegen: SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt, REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
Installiert: pip-system-certs, truststore, python-certifi-win32
Benutzerdefinierten Transport mit deaktivierter SSL-Verifizierung ausprobiert:
Code: Select all
from azure.core.pipeline.transport import RequestsTransport
import requests
session = requests.Session()
session.verify = False
transport = RequestsTransport(session=session)
search_client = SearchClient(endpoint, credential, index_name, transport=transport)
Frage: Wie kann ich dafür sorgen, dass das Azure Search Python SDK meine Unternehmenszertifikate in Docker erkennt, oder gibt es eine Möglichkeit, die Azure Search REST API direkt mit aiohttp aufzurufen, um das SDK zu umgehen?
Mobile version