Tutorial: Bagian 3 - Mengevaluasi dan menyebarkan aplikasi obrolan kustom dengan SDK alur perintah
Dalam tutorial ini, Anda menggunakan SDK alur perintah (dan pustaka lain) untuk mengevaluasi dan menyebarkan aplikasi obrolan yang Anda buat di Bagian 2 dari seri tutorial. Di bagian tiga ini, Anda mempelajari cara:
- Mengevaluasi kualitas respons aplikasi obrolan
- Menyebarkan aplikasi obrolan ke Azure
- Verifikasi penyebaran
Tutorial ini adalah bagian ketiga dari tutorial tiga bagian.
Prasyarat
Lengkapi bagian 2 dari seri tutorial untuk membangun aplikasi obrolan.
Anda harus memiliki izin yang diperlukan untuk menambahkan penetapan peran di langganan Azure Anda. Memberikan izin berdasarkan penetapan peran hanya diizinkan oleh Pemilik sumber daya Azure tertentu. Anda mungkin perlu meminta bantuan kepada pemilik langganan Azure Anda (siapa yang mungkin admin TI Anda) untuk bantuan terkait akses titik akhir nanti dalam tutorial.
Mengevaluasi kualitas respons aplikasi obrolan
Sekarang setelah Anda mengetahui aplikasi obrolan merespons dengan baik kueri Anda, termasuk dengan riwayat obrolan, saatnya untuk mengevaluasi bagaimana hal itu di beberapa metrik yang berbeda dan lebih banyak data.
Anda menggunakan evaluator alur perintah dengan himpunan data evaluasi dan get_chat_response()
fungsi target, lalu menilai hasil evaluasi.
Setelah menjalankan evaluasi, Anda kemudian dapat melakukan penyempurnaan pada logika Anda, seperti meningkatkan permintaan sistem Anda, dan mengamati bagaimana respons aplikasi obrolan berubah dan meningkat.
Mengatur model evaluasi Anda
Pilih model evaluasi yang ingin Anda gunakan. Ini bisa sama dengan model obrolan yang Anda gunakan untuk membangun aplikasi. Jika Anda menginginkan model yang berbeda untuk evaluasi, Anda perlu menyebarkannya, atau menentukannya jika sudah ada. Misalnya, Anda mungkin menggunakan gpt-35-turbo
untuk penyelesaian obrolan Anda, tetapi ingin menggunakan gpt-4
untuk evaluasi karena mungkin berkinerja lebih baik.
Tambahkan nama model evaluasi Anda di file .env Anda:
AZURE_OPENAI_EVALUATION_DEPLOYMENT=<your evaluation model deployment name>
Membuat himpunan data evaluasi
Gunakan himpunan data evaluasi berikut, yang berisi contoh pertanyaan dan jawaban yang diharapkan (kebenaran).
Buat file bernama eval_dataset.jsonl di folder rag-tutorial Anda. Lihat struktur kode aplikasi untuk referensi.
Tempelkan himpunan data ini ke dalam file:
{"chat_input": "Which tent is the most waterproof?", "truth": "The Alpine Explorer Tent has the highest rainfly waterproof rating at 3000m"} {"chat_input": "Which camping table holds the most weight?", "truth": "The Adventure Dining Table has a higher weight capacity than all of the other camping tables mentioned"} {"chat_input": "How much do the TrailWalker Hiking Shoes cost? ", "truth": "The Trailewalker Hiking Shoes are priced at $110"} {"chat_input": "What is the proper care for trailwalker hiking shoes? ", "truth": "After each use, remove any dirt or debris by brushing or wiping the shoes with a damp cloth."} {"chat_input": "What brand is for TrailMaster tent? ", "truth": "OutdoorLiving"} {"chat_input": "How do I carry the TrailMaster tent around? ", "truth": " Carry bag included for convenient storage and transportation"} {"chat_input": "What is the floor area for Floor Area? ", "truth": "80 square feet"} {"chat_input": "What is the material for TrailBlaze Hiking Pants?", "truth": "Made of high-quality nylon fabric"} {"chat_input": "What color does TrailBlaze Hiking Pants come in?", "truth": "Khaki"} {"chat_input": "Can the warrenty for TrailBlaze pants be transfered? ", "truth": "The warranty is non-transferable and applies only to the original purchaser of the TrailBlaze Hiking Pants. It is valid only when the product is purchased from an authorized retailer."} {"chat_input": "How long are the TrailBlaze pants under warrenty for? ", "truth": " The TrailBlaze Hiking Pants are backed by a 1-year limited warranty from the date of purchase."} {"chat_input": "What is the material for PowerBurner Camping Stove? ", "truth": "Stainless Steel"} {"chat_input": "Is France in Europe?", "truth": "Sorry, I can only queries related to outdoor/camping gear and equipment"}
Mengevaluasi dengan evaluator alur prompt
Sekarang tentukan skrip evaluasi yang akan:
evaluate
Impor fungsi dan evaluator dari paket alurevals
Prompt.- Muat himpunan data sampel
.jsonl
. - Hasilkan pembungkus fungsi target di sekitar logika aplikasi obrolan kami.
- Jalankan evaluasi, yang mengambil fungsi target, dan menggabungkan himpunan data evaluasi dengan respons dari aplikasi obrolan.
- Hasilkan satu set metrik yang dibantu GPT (relevansi, groundedness, dan koherensi) untuk mengevaluasi kualitas respons aplikasi obrolan.
- Keluarkan hasilnya secara lokal, dan catat hasilnya ke proyek cloud.
Skrip memungkinkan Anda meninjau hasilnya secara lokal, dengan menghasilkan hasil di baris perintah, dan ke file json.
Skrip ini juga mencatat hasil evaluasi ke proyek cloud sehingga Anda dapat membandingkan eksekusi evaluasi di UI.
Buat file bernama evaluate.py di folder rag-tutorial Anda.
Tambahkan kode berikut.
dataset_path
Perbarui danevaluation_name
agar sesuai dengan kasus penggunaan Anda.import json import os # set environment variables before importing any other code from dotenv import load_dotenv load_dotenv() import pandas as pd from promptflow.core import AzureOpenAIModelConfiguration from promptflow.evals.evaluate import evaluate from promptflow.evals.evaluators import ( RelevanceEvaluator, GroundednessEvaluator, CoherenceEvaluator, ) # Helper methods def load_jsonl(path): with open(path, "r") as f: return [json.loads(line) for line in f.readlines()] def copilot_wrapper(*, chat_input, **kwargs): from copilot_flow.copilot import get_chat_response result = get_chat_response(chat_input) parsedResult = {"answer": str(result["reply"]), "context": str(result["context"])} return parsedResult def run_evaluation(eval_name, dataset_path): model_config = AzureOpenAIModelConfiguration( azure_deployment=os.getenv("AZURE_OPENAI_EVALUATION_DEPLOYMENT"), api_version=os.getenv("AZURE_OPENAI_API_VERSION"), azure_endpoint=os.getenv("AZURE_OPENAI_ENDPOINT"), ) # Initializing Evaluators relevance_eval = RelevanceEvaluator(model_config) groundedness_eval = GroundednessEvaluator(model_config) coherence_eval = CoherenceEvaluator(model_config) output_path = "./eval_results.jsonl" result = evaluate( target=copilot_wrapper, evaluation_name=eval_name, data=dataset_path, evaluators={ "relevance": relevance_eval, "groundedness": groundedness_eval, "coherence": coherence_eval, }, evaluator_config={ "relevance": {"question": "${data.chat_input}"}, "coherence": {"question": "${data.chat_input}"}, }, # to log evaluation to the cloud AI Studio project azure_ai_project={ "subscription_id": os.getenv("AZURE_SUBSCRIPTION_ID"), "resource_group_name": os.getenv("AZURE_RESOURCE_GROUP"), "project_name": os.getenv("AZUREAI_PROJECT_NAME"), }, ) tabular_result = pd.DataFrame(result.get("rows")) tabular_result.to_json(output_path, orient="records", lines=True) return result, tabular_result if __name__ == "__main__": eval_name = "tutorial-eval" dataset_path = "./eval_dataset.jsonl" result, tabular_result = run_evaluation( eval_name=eval_name, dataset_path=dataset_path ) from pprint import pprint pprint("-----Summarized Metrics-----") pprint(result["metrics"]) pprint("-----Tabular Result-----") pprint(tabular_result) pprint(f"View evaluation results in AI Studio: {result['studio_url']}")
Fungsi utama di akhir memungkinkan Anda melihat hasil evaluasi secara lokal, dan memberi Anda tautan ke hasil evaluasi di AI Studio.
Jalankan skrip evaluasi
Dari konsol Anda, masuk ke akun Azure Anda dengan Azure CLI:
az login
Instal paket yang diperlukan:
pip install promptflow-evals pip install promptflow-azure
Sekarang jalankan skrip evaluasi:
python evaluate.py
Untuk informasi selengkapnya tentang menggunakan SDK alur perintah untuk evaluasi, lihat Mengevaluasi dengan SDK alur permintaan.
Menginterpretasikan output evaluasi
Dalam output konsol, Anda melihat untuk setiap pertanyaan jawaban dan metrik yang dirangkum dalam format tabel yang bagus ini. (Anda mungkin melihat kolom yang berbeda dalam output Anda.)
'-----Summarized Metrics-----'
{'coherence.gpt_coherence': 4.3076923076923075,
'groundedness.gpt_groundedness': 4.384615384615385,
'relevance.gpt_relevance': 4.384615384615385}
'-----Tabular Result-----'
question ... gpt_coherence
0 Which tent is the most waterproof? ... 5
1 Which camping table holds the most weight? ... 5
2 How much does TrailWalker Hiking Shoes cost? ... 5
3 What is the proper care for trailwalker hiking... ... 5
4 What brand is the TrailMaster tent? ... 1
5 How do I carry the TrailMaster tent around? ... 5
6 What is the floor area for Floor Area? ... 3
7 What is the material for TrailBlaze Hiking Pants ... 5
8 What color do the TrailBlaze Hiking Pants come ... 5
9 Can the warranty for TrailBlaze pants be trans... ... 3
10 How long are the TrailBlaze pants under warren... ... 5
11 What is the material for PowerBurner Camping S... ... 5
12 Is France in Europe? ... 1
Skrip menulis hasil evaluasi lengkap ke ./eval_results.jsonl
.
Dan ada tautan di konsol untuk melihat hasil evaluasi di proyek Azure AI Studio Anda.
Catatan
Anda mungkin melihat ERROR:asyncio:Unclosed client session
- ini dapat diabaikan dengan aman dan tidak memengaruhi hasil evaluasi.
Melihat hasil evaluasi di AI Studio
Setelah proses evaluasi selesai, ikuti tautan untuk melihat hasil evaluasi di halaman Evaluasi di Azure AI Studio.
Anda juga dapat melihat baris individual dan melihat skor metrik per baris, dan melihat konteks/dokumen lengkap yang diambil. Metrik ini dapat membantu dalam menafsirkan dan men-debug hasil evaluasi.
Untuk informasi selengkapnya tentang hasil evaluasi di AI Studio, lihat Cara melihat hasil evaluasi di AI Studio.
Setelah memverifikasi bahwa aplikasi obrolan bertingkah seperti yang diharapkan, Anda siap untuk menyebarkan aplikasi.
Menyebarkan aplikasi obrolan ke Azure
Sekarang mari kita lanjutkan dan sebarkan aplikasi obrolan ini ke titik akhir terkelola sehingga dapat dikonsumsi oleh aplikasi atau situs web eksternal.
Skrip penyebaran akan:
- Membuat titik akhir online terkelola
- Tentukan alur kami sebagai model
- Menyebarkan alur kami ke lingkungan terkelola pada titik akhir yang memiliki variabel lingkungan kami
- Rutekan semua lalu lintas ke penyebaran tersebut
- Output tautan untuk melihat dan menguji penyebaran di Azure AI Studio
Penyebaran mendefinisikan konteks build (Dockerfile) yang bergantung pada requirement.txt
yang ditentukan di folder alur kami, dan juga mengatur variabel lingkungan kami ke lingkungan yang disebarkan, sehingga kami dapat yakin bahwa aplikasi obrolan kami berjalan sama di lingkungan produksi seperti yang dilakukan secara lokal.
Konteks build untuk penyebaran (Dockerfile)
Lingkungan yang disebarkan memerlukan konteks build, jadi mari kita tentukan Dockerfile untuk lingkungan yang disebarkan. Skrip penyebaran membuat lingkungan berdasarkan Dockerfile ini. Buat Dockerfile ini di folder copilot_flow:
FROM mcr.microsoft.com/azureml/promptflow/promptflow-runtime:latest
COPY ./requirements.txt .
RUN pip install -r requirements.txt
Menyebarkan aplikasi obrolan ke titik akhir terkelola
Untuk menyebarkan aplikasi Anda ke titik akhir terkelola di Azure, buat titik akhir online, lalu buat penyebaran di titik akhir tersebut, lalu rutekan semua lalu lintas ke penyebaran tersebut.
Sebagai bagian dari pembuatan penyebaran, folder copilot_flow Anda dikemas sebagai model dan lingkungan cloud dibuat. Titik akhir disiapkan dengan autentikasi ID Microsoft Entra. Anda dapat memperbarui mode autentikasi yang Anda inginkan dalam kode, atau di Azure AI Studio di halaman detail titik akhir.
Penting
Menyebarkan aplikasi Anda ke titik akhir terkelola di Azure telah mengaitkan biaya komputasi berdasarkan jenis instans yang Anda pilih. Pastikan Anda mengetahui biaya terkait dan memiliki kuota untuk jenis instans yang Anda tentukan. Pelajari selengkapnya tentang titik akhir online.
Buat file deploy.py di folder rag-tutorial . Tambahkan kode berikut:
import os
from dotenv import load_dotenv
load_dotenv()
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
from azure.ai.ml.entities import (
ManagedOnlineEndpoint,
ManagedOnlineDeployment,
Model,
Environment,
BuildContext,
)
client = MLClient(
DefaultAzureCredential(),
os.getenv("AZURE_SUBSCRIPTION_ID"),
os.getenv("AZURE_RESOURCE_GROUP"),
os.getenv("AZUREAI_PROJECT_NAME"),
)
endpoint_name = "tutorial-endpoint"
deployment_name = "tutorial-deployment"
endpoint = ManagedOnlineEndpoint(
name=endpoint_name,
properties={
"enforce_access_to_default_secret_stores": "enabled" # for secret injection support
},
auth_mode="aad_token", # using aad auth instead of key-based auth
)
# Get the directory of the current script
script_dir = os.path.dirname(os.path.abspath(__file__))
# Define the path to the directory, appending the script directory to the relative path
copilot_path = os.path.join(script_dir, "copilot_flow")
deployment = ManagedOnlineDeployment(
name=deployment_name,
endpoint_name=endpoint_name,
model=Model(
name="copilot_flow_model",
path=copilot_path, # path to promptflow folder
properties=[ # this enables the chat interface in the endpoint test tab
["azureml.promptflow.source_flow_id", "basic-chat"],
["azureml.promptflow.mode", "chat"],
["azureml.promptflow.chat_input", "chat_input"],
["azureml.promptflow.chat_output", "reply"],
],
),
environment=Environment(
build=BuildContext(
path=copilot_path,
),
inference_config={
"liveness_route": {
"path": "/health",
"port": 8080,
},
"readiness_route": {
"path": "/health",
"port": 8080,
},
"scoring_route": {
"path": "/score",
"port": 8080,
},
},
),
instance_type="Standard_DS3_v2",
instance_count=1,
environment_variables={
"PRT_CONFIG_OVERRIDE": f"deployment.subscription_id={client.subscription_id},deployment.resource_group={client.resource_group_name},deployment.workspace_name={client.workspace_name},deployment.endpoint_name={endpoint_name},deployment.deployment_name={deployment_name}",
"AZURE_OPENAI_ENDPOINT": os.getenv("AZURE_OPENAI_ENDPOINT"),
"AZURE_SEARCH_ENDPOINT": os.getenv("AZURE_SEARCH_ENDPOINT"),
"AZURE_OPENAI_API_VERSION": os.getenv("AZURE_OPENAI_API_VERSION"),
"AZURE_OPENAI_CHAT_DEPLOYMENT": os.getenv("AZURE_OPENAI_CHAT_DEPLOYMENT"),
"AZURE_OPENAI_EVALUATION_DEPLOYMENT": os.getenv(
"AZURE_OPENAI_EVALUATION_DEPLOYMENT"
),
"AZURE_OPENAI_EMBEDDING_DEPLOYMENT": os.getenv(
"AZURE_OPENAI_EMBEDDING_DEPLOYMENT"
),
"AZUREAI_SEARCH_INDEX_NAME": os.getenv("AZUREAI_SEARCH_INDEX_NAME"),
},
)
# 1. create endpoint
created_endpoint = client.begin_create_or_update(
endpoint
).result() # result() means we wait on this to complete
# 2. create deployment
created_deployment = client.begin_create_or_update(deployment).result()
# 3. update endpoint traffic for the deployment
endpoint.traffic = {deployment_name: 100} # 100% of traffic
client.begin_create_or_update(endpoint).result()
Penting
Titik akhir dan nama penyebaran harus unik dalam wilayah Azure. Jika Anda mendapatkan kesalahan bahwa titik akhir atau nama penyebaran sudah ada, coba nama yang berbeda.
Detail penyebaran output
Tambahkan baris berikut ke akhir skrip penyebaran Anda untuk melihat hasil evaluasi secara lokal, dan dapatkan tautan ke studio:
def get_ai_studio_url_for_deploy(
client: MLClient, endpoint_name: str, deployment_name
) -> str:
studio_base_url = "https://ai.azure.com"
deployment_url = f"{studio_base_url}/projectdeployments/realtime/{endpoint_name}/{deployment_name}/detail?wsid=/subscriptions/{client.subscription_id}/resourceGroups/{client.resource_group_name}/providers/Microsoft.MachineLearningServices/workspaces/{client.workspace_name}&deploymentName={deployment_name}"
return deployment_url
print("\n ~~~Deployment details~~~")
print(f"Your online endpoint name is: {endpoint_name}")
print(f"Your deployment name is: {deployment_name}")
print("\n ~~~Test in the Azure AI Studio~~~")
print("\n Follow this link to your deployment in the Azure AI Studio:")
print(
get_ai_studio_url_for_deploy(
client=client, endpoint_name=endpoint_name, deployment_name=deployment_name
)
)
Sekarang, jalankan skrip dengan:
python deploy.py
Catatan
Penyebaran mungkin memakan waktu lebih dari 10 menit untuk diselesaikan. Kami sarankan Anda mengikuti langkah berikutnya untuk menetapkan akses ke titik akhir saat Anda menunggu.
Setelah penyebaran selesai, Anda mendapatkan tautan ke halaman penyebaran Azure AI Studio, tempat Anda dapat menguji penyebaran.
Verifikasi penyebaran
Sebaiknya uji aplikasi Anda di Azure AI Studio. Jika Anda lebih suka menguji titik akhir yang disebarkan secara lokal, Anda dapat memanggilnya dengan beberapa kode kustom.
Perhatikan nama titik akhir Anda, yang Anda butuhkan untuk langkah-langkah berikutnya.
Akses titik akhir untuk sumber daya Azure OpenAI
Anda mungkin perlu meminta bantuan kepada pemilik langganan Azure Anda (yang mungkin admin TI Anda) untuk bantuan tentang bagian ini.
Sambil menunggu aplikasi disebarkan, Anda atau administrator dapat menetapkan akses berbasis peran ke titik akhir. Peran ini memungkinkan aplikasi berjalan tanpa kunci di lingkungan yang disebarkan, seperti yang dilakukan secara lokal.
Sebelumnya, Anda memberi akun Anda peran tertentu untuk dapat mengakses sumber daya menggunakan autentikasi ID Microsoft Entra. Sekarang, tetapkan titik akhir dengan peran Pengguna OpenAI Cognitive Services yang sama.
Catatan
Langkah-langkah ini mirip dengan cara Anda menetapkan peran untuk identitas pengguna Anda untuk menggunakan Layanan Azure OpenAI di mulai cepat.
Untuk memberi diri Anda akses ke sumber daya Azure AI Services yang Anda gunakan:
Di AI Studio, buka proyek Anda dan pilih Pengaturan dari panel kiri.
Di bagian Sumber daya tersambung, pilih nama koneksi dengan jenis AIServices.
Catatan
Jika Anda tidak melihat koneksi AIServices , gunakan koneksi Azure OpenAI sebagai gantinya.
Pada halaman detail sumber daya, pilih tautan di bawah judul Sumber Daya untuk membuka sumber daya layanan AI di portal Azure.
Dari halaman kiri di portal Azure, pilih Kontrol akses (IAM)>+ Tambahkan>penetapan peran.
Cari peran Pengguna OpenAI Cognitive Services lalu pilih. Kemudian pilih Berikutnya.
Pilih Identitas terkelola. Lalu pilih Pilih anggota.
Di panel Pilih anggota yang terbuka, pilih Titik akhir online pembelajaran mesin untuk identitas Terkelola, lalu cari nama titik akhir Anda. Pilih titik akhir lalu pilih Pilih.
Lanjutkan melalui wizard dan pilih Tinjau + tetapkan untuk menambahkan penetapan peran.
Catatan
Mungkin perlu waktu beberapa menit agar akses disebarluaskan. Jika Anda mendapatkan kesalahan yang tidak sah saat menguji di langkah berikutnya, coba lagi setelah beberapa menit.
Akses titik akhir untuk sumber daya Pencarian Azure AI
Anda mungkin perlu meminta bantuan kepada pemilik langganan Azure Anda (yang mungkin admin TI Anda) untuk bantuan tentang bagian ini.
Mirip dengan cara Anda menetapkan peran Kontributor Data Indeks Pencarian ke layanan Pencarian Azure AI, Anda perlu menetapkan peran yang sama untuk titik akhir Anda.
Di Azure AI Studio, pilih Pengaturan dan navigasikan ke layanan Pencarian Azure AI yang tersambung.
Pilih tautan untuk membuka ringkasan sumber daya. Pilih tautan pada halaman ringkasan untuk membuka sumber daya di portal Azure.
Dari halaman kiri di portal Azure, pilih Kontrol akses (IAM)>+ Tambahkan>penetapan peran.
Cari peran Kontributor Data Indeks Pencarian lalu pilih. Kemudian pilih Berikutnya.
Pilih Identitas terkelola. Lalu pilih Pilih anggota.
Di panel Pilih anggota yang terbuka, pilih Titik akhir online pembelajaran mesin untuk identitas Terkelola, lalu cari nama titik akhir Anda. Pilih titik akhir lalu pilih Pilih.
Lanjutkan melalui wizard dan pilih Tinjau + tetapkan untuk menambahkan penetapan peran.
Catatan
Mungkin perlu waktu beberapa menit agar akses disebarluaskan. Jika Anda mendapatkan kesalahan yang tidak sah saat menguji di langkah berikutnya, coba lagi setelah beberapa menit.
Menguji penyebaran Anda di AI Studio
Setelah penyebaran selesai, Anda mendapatkan tautan yang berguna ke penyebaran Anda. Jika Anda tidak menggunakan tautan , navigasikan ke tab Penyebaran di proyek Anda dan pilih penyebaran baru Anda.
Pilih tab Uji , dan coba ajukan pertanyaan di antarmuka obrolan.
Misalnya, ketik "Apakah sepatu pendakian Trailwalker tahan air?" dan masukkan.
Melihat respons kembali memverifikasi penyebaran Anda.
Jika Anda mendapatkan kesalahan, pilih tab Log untuk mendapatkan detail selengkapnya.
Catatan
Jika Anda mendapatkan kesalahan yang tidak sah, akses titik akhir Anda mungkin belum diterapkan. Coba lagi dalam beberapa menit.
Memanggil aplikasi obrolan yang disebarkan secara lokal
Jika Anda lebih suka memverifikasi penyebaran secara lokal, Anda dapat memanggilnya melalui skrip Python.
Tentukan skrip yang akan:
- Buat permintaan yang terbentuk dengan baik ke URL penilaian kami.
- Posting permintaan dan tangani respons.
Buat file invoke-local.py di folder rag-tutorial Anda, dengan kode berikut. query
Ubah dan endpoint_name
(dan parameter lain sesuai kebutuhan) agar sesuai dengan kasus penggunaan Anda.
import os
from dotenv import load_dotenv
load_dotenv()
import requests
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
query = "Are the trailwalker shoes waterproof?"
endpoint_name = "tutorial-endpoint"
client = MLClient(
DefaultAzureCredential(),
os.getenv("AZURE_SUBSCRIPTION_ID"),
os.getenv("AZURE_RESOURCE_GROUP"),
os.getenv("AZUREAI_PROJECT_NAME"),
)
scoring_url = client.online_endpoints.get(endpoint_name).scoring_uri
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {client._credential.get_token('https://ml.azure.com').token}",
"Accept": "application/json",
}
response = requests.post(
scoring_url,
headers=headers,
json={"chat_input": query},
)
(print(response.json()["reply"]))
Anda akan melihat balasan aplikasi obrolan ke kueri Anda di konsol.
Catatan
Jika Anda mendapatkan kesalahan yang tidak sah, akses titik akhir Anda mungkin belum diterapkan. Coba lagi dalam beberapa menit.
Membersihkan sumber daya
Untuk menghindari timbulnya biaya Azure yang tidak perlu, Anda harus menghapus sumber daya yang Anda buat dalam tutorial ini jika tidak lagi diperlukan. Untuk mengelola sumber daya, Anda dapat menggunakan portal Azure.
Konten terkait
- Pelajari selengkapnya tentang alur perintah
- Untuk contoh aplikasi aplikasi obrolan yang mengimplementasikan RAG, lihat Azure-Samples/rag-data-openai-python-promptflow