Model pengenalan maksud Qwen secara cepat dan akurat mengurai maksud pengguna dalam hitungan milidetik serta memilih alat yang sesuai untuk menyelesaikan kueri pengguna.
Dokumen ini hanya berlaku untuk Wilayah China (Beijing). Untuk menggunakan model, Anda harus menggunakan Kunci API dari wilayah China (Beijing).
Model yang didukung
Model | Context window | Masukan maksimum | Keluaran maksimum | Harga masukan | Harga keluaran |
(Token) | (Juta token) | ||||
tongyi-intent-detect-v3 | 8.192 | 8.192 | 1.024 | $0,058 | $0,144 |
Penggunaan
Prasyarat
Anda harus memperoleh Kunci API dan mengatur Kunci API sebagai Variabel lingkungan. Jika Anda menggunakan OpenAI SDK atau DashScope SDK untuk membuat panggilan, Anda juga harus menginstal SDK.
Keluaran informasi maksud dan pemanggilan fungsi
Untuk mengaktifkan model pengenalan maksud mengeluarkan informasi maksud dan pemanggilan fungsi, atur Pesan Sistem sebagai berikut:
Anda adalah Qwen, dibuat oleh Alibaba Cloud. Anda adalah asisten yang membantu. Anda dapat memanggil satu atau lebih alat untuk membantu dengan kueri pengguna. Alat yang dapat Anda gunakan adalah sebagai berikut:
{Informasi alat}
Respons dalam INTENT_MODE.Tentukan Respons dalam INTENT_MODE. dalam Pesan Sistem dan sertakan informasi tentang alat yang tersedia. Format untuk informasi alat adalah:
[{
"name": "Nama alat 1",
"description": "Deskripsi alat 1",
"parameters": {
"type": "Tipe parameter, biasanya objek",
"properties": {
"parameter_1": {
"description": "Deskripsi parameter_1",
"type": "Tipe parameter_1",
"default": "Nilai default parameter_1"
},
...
"parameter_n": {
"description": "Deskripsi parameter_n",
"type": "Tipe parameter_n",
"default": "Nilai default parameter_n"
}
},
"required": [
"parameter_1",
...
"parameter_n"
]
},
},
...
{
"name": "Nama alat n",
"description": "Deskripsi alat n",
"parameters": {
"type": "Tipe parameter, biasanya objek",
"properties": {
"parameter_1": {
"description": "Deskripsi parameter_1",
"type": "Tipe parameter_1",
"default": "Nilai default parameter_1"
},
...
"parameter_n": {
"description": "Deskripsi parameter_n",
"type": "Tipe parameter_n",
"default": "Nilai default parameter_n"
}
},
"required": [
"parameter_1",
...
"parameter_n"
]
},
}]Misalnya, jika Anda memerlukan dua alat: alat kueri waktu dan alat kueri cuaca, informasi alatnya adalah sebagai berikut:
[
{
"name": "get_current_time",
"description": "Ini berguna saat Anda ingin mengetahui waktu saat ini.",
"parameters": {}
},
{
"name": "get_current_weather",
"description": "Ini berguna saat Anda ingin menanyakan cuaca di kota tertentu.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Sebuah kota atau distrik, seperti Beijing, Hangzhou, atau Distrik Yuhang.",
}
},
"required": ["location"]
}
}
]Contoh permintaan
Kompatibel dengan OpenAI
import os
import json
from openai import OpenAI
# Tentukan alat
tools = [
{
"name": "get_current_time",
"description": "Ini berguna saat Anda ingin mengetahui waktu saat ini.",
"parameters": {}
},
{
"name": "get_current_weather",
"description": "Ini berguna saat Anda ingin menanyakan cuaca di kota tertentu.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Sebuah kota atau distrik, seperti Beijing, Hangzhou, atau Distrik Yuhang.",
}
},
"required": ["location"]
}
}
]
tools_string = json.dumps(tools,ensure_ascii=False)
system_prompt = f"""Anda adalah Qwen, dibuat oleh Alibaba Cloud. Anda adalah asisten yang membantu. Anda dapat memanggil satu atau lebih alat untuk membantu dengan kueri pengguna. Alat yang dapat Anda gunakan adalah sebagai berikut:
{tools_string}
Respons dalam INTENT_MODE."""
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
messages = [
{'role': 'system', 'content': system_prompt},
{'role': 'user', 'content': "Cuaca di Hangzhou"}
]
response = client.chat.completions.create(
model="tongyi-intent-detect-v3",
messages=messages
)
print(response.choices[0].message.content)DashScope
import os
import json
from dashscope import Generation
# Tentukan alat
tools = [
{
"name": "get_current_time",
"description": "Ini berguna saat Anda ingin mengetahui waktu saat ini.",
"parameters": {}
},
{
"name": "get_current_weather",
"description": "Ini berguna saat Anda ingin menanyakan cuaca di kota tertentu.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Sebuah kota atau distrik, seperti Beijing, Hangzhou, atau Distrik Yuhang.",
}
},
"required": ["location"]
}
}
]
tools_string = json.dumps(tools,ensure_ascii=False)
system_prompt = f"""Anda adalah Qwen, dibuat oleh Alibaba Cloud. Anda adalah asisten yang membantu. Anda dapat memanggil satu atau lebih alat untuk membantu dengan kueri pengguna. Alat yang dapat Anda gunakan adalah sebagai berikut:
{tools_string}
Respons dalam INTENT_MODE."""
messages = [
{'role': 'system', 'content': system_prompt},
{'role': 'user', 'content': "Cuaca di Hangzhou"}
]
response = Generation.call(
# Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key = "sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="tongyi-intent-detect-v3",
messages=messages,
result_format="message"
)
print(response.output.choices[0].message.content)Contoh respons
<tags>
[pemanggilan fungsi, respons json]
</tags><tool_call>
[{"name": "get_current_weather", "arguments": {"location": "Hangzhou"}}]
</tool_call><content>
</content>Setelah menerima respons, gunakan fungsi parse_text untuk mengurai informasi alat dan parameter yang dikembalikan:
import re
def parse_text(text):
# Tentukan pola ekspresi reguler untuk mencocokkan <tags>, <tool_call>, <content>, dan isinya
tags_pattern = r'<tags>(.*?)</tags>'
tool_call_pattern = r'<tool_call>(.*?)</tool_call>'
content_pattern = r'<content>(.*?)</content>'
# Gunakan ekspresi reguler untuk menemukan konten yang cocok
tags_match = re.search(tags_pattern, text, re.DOTALL)
tool_call_match = re.search(tool_call_pattern, text, re.DOTALL)
content_match = re.search(content_pattern, text, re.DOTALL)
# Ekstrak konten yang cocok. Jika tidak ada kecocokan, string kosong akan dikembalikan.
tags = tags_match.group(1).strip() if tags_match else ""
tool_call = tool_call_match.group(1).strip() if tool_call_match else ""
content = content_match.group(1).strip() if content_match else ""
# Simpan konten yang diekstrak dalam kamus
result = {
"tags": tags,
"tool_call": tool_call,
"content": content
}
return result
response = """<tags>
[pemanggilan fungsi, respons json]
</tags><tool_call>
[{"name": "get_current_weather", "arguments": {"location": "Hangzhou"}}]
</tool_call><content>
</content>"""
print(parse_text(response))Contoh keluaran:
{
"tags": "[pemanggilan fungsi, respons json]",
"tool_call": [
{
"name": "get_current_weather",
"arguments": {
"location": "Hangzhou"
}
}
],
"content": ""
}Keluaran hanya informasi maksud
Untuk membuat model pengenalan maksud mengeluarkan hanya informasi maksud, atur Pesan Sistem sebagai berikut:
Anda adalah Qwen, dibuat oleh Alibaba Cloud. Anda adalah asisten yang membantu. \nAnda harus memilih satu tag dari daftar tag:\n{informasi maksud}\nhanya balas dengan tag yang dipilih.Format untuk informasi maksud adalah sebagai berikut:
{
"Maksud 1": "Deskripsi Maksud 1",
"Maksud 2": "Deskripsi Maksud 2",
"Maksud 3": "Deskripsi Maksud 3",
...
}Contoh permintaan
Kompatibel dengan OpenAI
import os
import json
from openai import OpenAI
intent_dict = {
"play_game": "Main game",
"email_querycontact": "Email tanya kontak",
"general_quirky": "unik",
"email_addcontact": "Email tambah kontak",
"takeaway_query": "Kueri pesan antar",
"recommendation_locations": "Rekomendasi lokasi",
"transport_traffic": "Transportasi",
"iot_cleaning": "IoT - penyedot debu, pembersih",
"general_joke": "Lelucon",
"lists_query": "Kueri daftar/checklist",
"calendar_remove": "Kalender hapus acara",
"transport_taxi": "Taksi, pemesanan taksi",
"qa_factoid": "Q&A faktual",
"transport_ticket": "Tiket transportasi",
"play_radio": "Putar radio",
"alarm_set": "Atur alarm",
}
intent_string = json.dumps(intent_dict,ensure_ascii=False)
system_prompt = f"""Anda adalah Qwen, dibuat oleh Alibaba Cloud. Anda adalah asisten yang membantu.
Anda harus memilih satu tag dari daftar tag:
{intent_string}
Hanya balas dengan tag yang dipilih."""
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
messages = [
{'role': 'system', 'content': system_prompt},
{'role': 'user', 'content': "Bangunkan saya jam sembilan pagi Jumat"}
]
response = client.chat.completions.create(
model="tongyi-intent-detect-v3",
messages=messages
)
print(response.choices[0].message.content)DashScope
import os
import json
from dashscope import Generation
intent_dict = {
"play_game": "Main game",
"email_querycontact": "Email tanya kontak",
"general_quirky": "unik",
"email_addcontact": "Email tambah kontak",
"takeaway_query": "Kueri pesan antar",
"recommendation_locations": "Rekomendasi lokasi",
"transport_traffic": "Transportasi",
"iot_cleaning": "IoT - penyedot debu, pembersih",
"general_joke": "Lelucon",
"lists_query": "Kueri daftar/checklist",
"calendar_remove": "Kalender hapus acara",
"transport_taxi": "Taksi, pemesanan taksi",
"qa_factoid": "Q&A faktual",
"transport_ticket": "Tiket transportasi",
"play_radio": "Putar radio",
"alarm_set": "Atur alarm",
}
intent_string = json.dumps(intent_dict,ensure_ascii=False)
system_prompt = f"""Anda adalah Qwen, dibuat oleh Alibaba Cloud. Anda adalah asisten yang membantu.
Anda harus memilih satu tag dari daftar tag:
{intent_string}
Hanya balas dengan tag yang dipilih."""
messages = [
{'role': 'system', 'content': system_prompt},
{'role': 'user', 'content': "Bangunkan saya jam sembilan pagi Jumat"}
]
response = Generation.call(
# Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key = "sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="tongyi-intent-detect-v3",
messages=messages,
result_format="message"
)
print(response.output.choices[0].message.content)Contoh respons
alarm_setTingkatkan waktu respons pengenalan maksud
Untuk meningkatkan waktu respons pengenalan maksud, gunakan satu huruf kapital untuk mewakili setiap kategori maksud. Respons pengenalan maksud kemudian akan menjadi satu token, yang mengoptimalkan waktu respons panggilan model.
Kompatibel dengan OpenAI
import os
import json
from openai import OpenAI
intent_dict = {
"A": "Main game",
"B": "Email tanya kontak",
"C": "unik",
"D": "Email tambah kontak",
"E": "Kueri pesan antar",
"F": "Rekomendasi lokasi",
"G": "Transportasi",
"H": "IoT - penyedot debu, pembersih",
"I": "Lelucon",
"J": "Kueri daftar/checklist",
"K": "Kalender hapus acara",
"L": "Taksi, pemesanan taksi",
"M": "Q&A faktual",
"N": "Tiket transportasi",
"O": "Putar radio",
"P": "Atur alarm",
}
intent_string = json.dumps(intent_dict, ensure_ascii=False)
system_prompt = f"""Anda adalah Qwen, dibuat oleh Alibaba Cloud. Anda adalah asisten yang membantu.
Anda harus memilih satu tag dari daftar tag:
{intent_string}
Hanya balas dengan tag yang dipilih."""
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": "Apa penerbangan pertama dari Beijing ke Hangzhou?"},
]
response = client.chat.completions.create(
model="tongyi-intent-detect-v3", messages=messages
)
print(response.choices[0].message.content)DashScope
import os
import json
from dashscope import Generation
intent_dict = {
"A": "Main game",
"B": "Email tanya kontak",
"C": "unik",
"D": "Email tambah kontak",
"E": "Kueri pesan antar",
"F": "Rekomendasi lokasi",
"G": "Transportasi",
"H": "IoT - penyedot debu, pembersih",
"I": "Lelucon",
"J": "Kueri daftar/checklist",
"K": "Kalender hapus acara",
"L": "Taksi, pemesanan taksi",
"M": "Q&A faktual",
"N": "Tiket transportasi",
"O": "Putar radio",
"P": "Atur alarm",
}
intent_string = json.dumps(intent_dict, ensure_ascii=False)
system_prompt = f"""Anda adalah Qwen, dibuat oleh Alibaba Cloud. Anda adalah asisten yang membantu.
Anda harus memilih satu tag dari daftar tag:
{intent_string}
Hanya balas dengan tag yang dipilih."""
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": "Apa penerbangan pertama dari Beijing ke Hangzhou?"},
]
response = Generation.call(
# Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key = "sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="tongyi-intent-detect-v3",
messages=messages,
result_format="message",
)
print(response.output.choices[0].message.content)Setelah menjalankan kode, Anda bisa mendapatkan hasil kategorisasi maksud satu-token.
MKeluaran hanya informasi pemanggilan fungsi
Untuk membuat model pengenalan maksud mengeluarkan hanya informasi pemanggilan fungsi, atur Pesan Sistem sebagai berikut:
Anda adalah Qwen, dibuat oleh Alibaba Cloud. Anda adalah asisten yang membantu. Anda dapat memanggil satu atau lebih alat untuk membantu dengan kueri pengguna. Alat yang dapat Anda gunakan adalah sebagai berikut:\n{Informasi alat}\nRespons dalam NORMAL_MODE.Format untuk informasi alat sama dengan yang dijelaskan dalam Keluaran informasi maksud dan pemanggilan fungsi.
Contoh permintaan
Kompatibel dengan OpenAI
import os
import json
from openai import OpenAI
# Tentukan alat
tools = [
{
"name": "get_current_time",
"description": "Ini berguna saat Anda ingin mengetahui waktu saat ini.",
"parameters": {}
},
{
"name": "get_current_weather",
"description": "Ini berguna saat Anda ingin menanyakan cuaca di kota tertentu.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Sebuah kota atau distrik, seperti Beijing, Hangzhou, atau Distrik Yuhang.",
}
},
"required": ["location"]
}
}
]
tools_string = json.dumps(tools,ensure_ascii=False)
system_prompt = f"""Anda adalah Qwen, dibuat oleh Alibaba Cloud. Anda adalah asisten yang membantu. Anda dapat memanggil satu atau lebih alat untuk membantu dengan kueri pengguna. Alat yang dapat Anda gunakan adalah sebagai berikut:
{tools_string}
Respons dalam NORMAL_MODE."""
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
messages = [
{'role': 'system', 'content': system_prompt},
{'role': 'user', 'content': "Cuaca di Hangzhou"}
]
response = client.chat.completions.create(
model="tongyi-intent-detect-v3",
messages=messages
)
print(response.choices[0].message.content)DashScope
import os
import json
from dashscope import Generation
# Tentukan alat
tools = [
{
"name": "get_current_time",
"description": "Ini berguna saat Anda ingin mengetahui waktu saat ini.",
"parameters": {}
},
{
"name": "get_current_weather",
"description": "Ini berguna saat Anda ingin menanyakan cuaca di kota tertentu.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Sebuah kota atau distrik, seperti Beijing, Hangzhou, atau Distrik Yuhang.",
}
},
"required": ["location"]
}
}
]
tools_string = json.dumps(tools,ensure_ascii=False)
system_prompt = f"""Anda adalah Qwen, dibuat oleh Alibaba Cloud. Anda adalah asisten yang membantu. Anda dapat memanggil satu atau lebih alat untuk membantu dengan kueri pengguna. Alat yang dapat Anda gunakan adalah sebagai berikut:
{tools_string}
Respons dalam NORMAL_MODE."""
messages = [
{'role': 'system', 'content': system_prompt},
{'role': 'user', 'content': "Cuaca di Hangzhou"}
]
response = Generation.call(
# Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key = "sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="tongyi-intent-detect-v3",
messages=messages,
result_format="message"
)
print(response.output.choices[0].message.content)Contoh respons
<tool_call>
{"name": "get_current_weather", "arguments": {"location": "Hangzhou"}}
</tool_call>Setelah menerima respons, gunakan fungsi parse_text untuk mengurai informasi alat dan parameter yang dikembalikan:
import re
def parse_text(text):
tool_call_pattern = r'<tool_call>(.*?)</tool_call>'
# Gunakan ekspresi reguler untuk menemukan konten yang cocok
tool_call_match = re.search(tool_call_pattern, text, re.DOTALL)
# Ekstrak konten yangcocok. Jika tidak ada kecocokan, string kosong akan dikembalikan.
tool_call = tool_call_match.group(1).strip() if tool_call_match else ""
return tool_call
response = """<tool_call>
{"name": "get_current_weather", "arguments": {"location": "Hangzhou"}}
</tool_call>"""
print(parse_text(response))Contoh keluaran:
{"name": "get_current_weather", "arguments": {"location": "Hangzhou"}}Percakapan multi-putaran
Jika pengguna tidak memberikan informasi yang cukup dalam kueri, model pengenalan maksud akan mengajukan pertanyaan lanjutan. Setelah mengumpulkan parameter yang diperlukan, ia kemudian mengeluarkan informasi pemanggilan fungsi.
Keluaran informasi maksud dan pemanggilan fungsi
Contoh permintaan
Kompatibel dengan OpenAI
import os
import json
from openai import OpenAI
# Tentukan alat
tools = [
{
"name": "get_current_time",
"description": "Ini berguna saat Anda ingin mengetahui waktu saat ini.",
"parameters": {},
},
{
"name": "get_current_weather",
"description": "Ini berguna saat Anda ingin menanyakan cuaca di kota tertentu.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Sebuah kota atau distrik, seperti Beijing, Hangzhou, atau Distrik Yuhang.",
}
},
"required": ["location"],
},
},
]
tools_string = json.dumps(tools, ensure_ascii=False)
system_prompt = f"""Anda adalah Qwen, dibuat oleh Alibaba Cloud. Anda adalah asisten yang membantu. Anda dapat memanggil satu atau lebih alat untuk membantu dengan kueri pengguna. Alat yang dapat Anda gunakan adalah sebagai berikut:
{tools_string}
Respons dalam INTENT_MODE."""
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
messages = [
{"role": "system", "content": system_prompt},
# Pertanyaan yang diajukan pada putaran percakapan pertama
{"role": "user", "content": "Saya ingin memeriksa cuaca"},
]
response = client.chat.completions.create(
model="tongyi-intent-detect-v3", messages=messages
)
print("Kueri: Saya ingin memeriksa cuaca")
print("Keluaran putaran pertama:\n")
print(response.choices[0].message.content)
messages.append(response.choices[0].message)
# Pertanyaan yang diajukan pada putaran percakapan kedua
messages.append({"role": "user", "content": "Di Hangzhou"})
response = client.chat.completions.create(
model="tongyi-intent-detect-v3", messages=messages
)
print("\nKueri: Di Hangzhou")
print("Keluaran putaran kedua:\n")
print(response.choices[0].message.content)DashScope
import os
import json
from dashscope import Generation
# Tentukan alat
tools = [
{
"name": "get_current_time",
"description": "Ini berguna saat Anda ingin mengetahui waktu saat ini.",
"parameters": {},
},
{
"name": "get_current_weather",
"description": "Ini berguna saat Anda ingin menanyakan cuaca di kota tertentu.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Sebuah kota atau distrik, seperti Beijing, Hangzhou, atau Distrik Yuhang.",
}
},
"required": ["location"],
},
},
]
tools_string = json.dumps(tools, ensure_ascii=False)
system_prompt = f"""Anda adalah Qwen, dibuat oleh Alibaba Cloud. Anda adalah asisten yang membantu. Anda dapat memanggil satu atau lebih alat untuk membantu dengan kueri pengguna. Alat yang dapat Anda gunakan adalah sebagai berikut:
{tools_string}
Respons dalam INTENT_MODE."""
messages = [
{"role": "system", "content": system_prompt},
# Pertanyaan yang diajukan pada putaran percakapan pertama
{"role": "user", "content": "Saya ingin memeriksa cuaca"},
]
response = Generation.call(
# Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key = "sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="tongyi-intent-detect-v3",
messages=messages,
result_format="message",
)
print("Kueri: Saya ingin memeriksa cuaca")
print("Keluaran putaran pertama:\n")
print(response.output.choices[0].message.content)
messages.append(
{"role": "assistant", "content": response.output.choices[0].message.content}
)
# Pertanyaan yang diajukan pada putaran percakapan kedua
messages.append({"role": "user", "content": "Hangzhou"})
response = Generation.call(
# Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key = "sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="tongyi-intent-detect-v3",
messages=messages,
result_format="message",
)
print("\nKueri: Hangzhou")
print("Keluaran putaran kedua:\n")
print(response.output.choices[0].message.content)Contoh respons
Kueri: Saya ingin memeriksa cuaca
Keluaran putaran pertama:
<tags>
[informasi cuaca]
</tags><tool_call>
[]
</tool_call><content>
Baik. Cuaca di kota mana yang ingin Anda periksa?
</content>
Kueri: Hangzhou
Keluaran putaran kedua:
<tags>
[pemanggilan fungsi, respons json]
</tags><tool_call>
[{"name": "get_current_weather", "arguments": {"location": "Hangzhou"}}]
</tool_call><content>
</content>Keluaran hanya informasi pemanggilan fungsi
Contoh permintaan
Kompatibel dengan OpenAI
import os
import json
from openai import OpenAI
# Tentukan alat
tools = [
{
"name": "get_current_time",
"description": "Ini berguna saat Anda ingin mengetahui waktu saat ini.",
"parameters": {},
},
{
"name": "get_current_weather",
"description": "Ini berguna saat Anda ingin menanyakan cuaca di kota tertentu.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Sebuah kota atau distrik, seperti Beijing, Hangzhou, atau Distrik Yuhang.",
}
},
"required": ["location"],
},
},
]
tools_string = json.dumps(tools, ensure_ascii=False)
system_prompt = f"""Anda adalah Qwen, dibuat oleh Alibaba Cloud. Anda adalah asisten yang membantu. Anda dapat memanggil satu atau lebih alat untuk membantu dengan kueri pengguna. Alat yang dapat Anda gunakan adalah sebagai berikut:
{tools_string}
Respons dalam NORMAL_MODE."""
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": "Saya ingin memeriksa cuaca"},
]
response = client.chat.completions.create(
model="tongyi-intent-detect-v3", messages=messages
)
messages.append(response.choices[0].message)
print("Kueri: Saya ingin memeriksa cuaca")
print("Keluaran putaran pertama:\n")
print(response.choices[0].message.content)
messages.append({"role": "user", "content": "Hangzhou"})
response = client.chat.completions.create(
model="tongyi-intent-detect-v3", messages=messages
)
print("\nKueri: Hangzhou")
print("Keluaran putaran kedua:\n")
print(response.choices[0].message.content)DashScope
import os
import json
from dashscope import Generation
# Tentukan alat
tools = [
{
"name": "get_current_time",
"description": "Ini berguna saat Anda ingin mengetahui waktu saat ini.",
"parameters": {},
},
{
"name": "get_current_weather",
"description": "Ini berguna saat Anda ingin menanyakan cuaca di kota tertentu.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Sebuah kota atau distrik, seperti Beijing, Hangzhou, atau Distrik Yuhang.",
}
},
"required": ["location"],
},
},
]
tools_string = json.dumps(tools, ensure_ascii=False)
system_prompt = f"""Anda adalah Qwen, dibuat oleh Alibaba Cloud. Anda adalah asisten yang membantu. Anda dapat memanggil satu atau lebih alat untuk membantu dengan kueri pengguna. Alat yang dapat Anda gunakan adalah sebagai berikut:
{tools_string}
Respons dalam NORMAL_MODE."""
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": "Saya ingin memeriksa cuaca"},
]
response = Generation.call(
# Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key = "sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="tongyi-intent-detect-v3",
messages=messages,
result_format="message",
)
print("Kueri: Saya ingin memeriksa cuaca")
print("Keluaran putaran pertama:\n")
print(response.output.choices[0].message.content)
messages.append(
{"role": "assistant", "content": response.output.choices[0].message.content}
)
messages.append({"role": "user", "content": "Hangzhou"})
response = Generation.call(
# Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key = "sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="tongyi-intent-detect-v3",
messages=messages,
result_format="message",
)
print("\nKueri: Hangzhou")
print("Keluaran putaran kedua:\n")
print(response.output.choices[0].message.content)Contoh respons
Kueri: Saya ingin memeriksa cuaca
Keluaran putaran pertama:
Cuaca di kota mana yang ingin Anda periksa?
Kueri: Hangzhou
Keluaran putaran kedua:
<tool_call>
{"name": "get_current_weather", "arguments": {"location": "Hangzhou"}}
</tool_call>FAQ
T: Berapa jumlah maksimum alat yang dapat dimasukkan?
A: Kami merekomendasikan agar Anda menyediakan tidak lebih dari 10 alat. Jika tidak, akurasi pemanggilan alat mungkin menurun.