Server BladeLLM menyediakan antarmuka yang kompatibel dengan OpenAI /v1/completions dan /v1/chat/completions, memungkinkan klien memanggil layanan dengan mengirimkan permintaan HTTP POST ke jalur /v1/completions atau /v1/chat/completions. Topik ini menjelaskan parameter yang dapat dikonfigurasi saat memanggil layanan serta parameter dalam hasil yang dikembalikan.
Antarmuka Completions
Contoh pemanggilan
Baris perintah
# Panggil layanan EAS
# Ganti <Your EAS Token> dengan Token layanan; ganti <service_url> dengan endpoint layanan.
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: <Your EAS Token>" \
-d '{"prompt":"hello world", "stream":"true"}' \
<service_url>/v1/completionsPython
# Skrip Python
import json
import requests
from typing import Dict, List
# <service_url>: Ganti dengan endpoint layanan.
url = "<service_url>/v1/completions"
prompt = "hello world"
req = {
"prompt": prompt,
"stream": True,
"temperature": 0.0,
"top_p": 0.5,
"top_k": 10,
"max_tokens": 300,
}
response = requests.post(
url,
json=req,
# <Your EAS Token>: Ganti dengan Token layanan.
headers={"Content-Type": "application/json", "Authorization": "<Your EAS Token>"},
stream=True,
)
for chunk in response.iter_lines(chunk_size=8192, decode_unicode=False):
msg = chunk.decode("utf-8")
if msg.startswith('data'):
info = msg[6:]
if info == '[DONE]':
break
else:
resp = json.loads(info)
print(resp['choices'][0]['text'], end='', flush=True)Deskripsi konfigurasi parameter permintaan
Parameter | Wajib | Tipe | Nilai default | Deskripsi |
model | Tidak | string | Tidak ada | Nama model, digunakan untuk menentukan nama LoRA. |
prompt | Ya | string | Tidak ada | Prompt masukan. |
max_tokens | Tidak | integer | 16 | Jumlah maksimum token yang akan dibuat dalam permintaan. |
echo | Tidak | boolean | False | Apakah akan mengembalikan prompt bersama dengan hasil yang dihasilkan. |
seed | Tidak | integer | Tidak ada | Biji acak. |
stream | Tidak | boolean | False | Apakah mendapatkan hasil yang dikembalikan secara streaming. |
temperature | Tidak | number | 1.0 | Mengontrol keacakan dan keragaman teks yang dihasilkan. Rentang nilai [0,1.0]. |
top_p | Tidak | number | 1.0 | Dari semua token yang diprediksi oleh model, pilih token yang paling mungkin dimana jumlah probabilitasnya mencapai top_p. Rentang nilai [0,1.0]. |
top_k | Tidak | integer | -1 | Menyimpan token top_k dengan probabilitas tertinggi. |
repetition_penalty | Tidak | number | 1.0 | Parameter penting untuk mengontrol keragaman teks yang dihasilkan.
|
presence_penalty | Tidak | number | 0.0 | Digunakan untuk mengontrol keragaman kosakata dalam teks yang dihasilkan.
|
frequency_penalty | Tidak | number | 0.0 | Digunakan untuk mengontrol tingkat hukuman atas frekuensi penggunaan ulang kata-kata yang sudah muncul saat menghasilkan teks.
|
stop (stop_sequences) | Tidak | [string] | Tidak ada | Digunakan untuk meminta model berhenti menghasilkan ketika teks tertentu ditemui selama pembuatan teks. Contohnya ["</s>"] |
stop_tokens | Tidak | [int] | Tidak ada | Digunakan untuk meminta model berhenti menghasilkan ketika ID Token tertentu ditemui selama pembuatan teks. |
ignore_eos | Tidak | boolean | False | Abaikan penanda akhir saat menghasilkan teks. |
logprobs | Tidak | integer | Tidak ada | Kembalikan distribusi probabilitas setiap token keluaran yang mungkin selama pembuatan teks. |
response_format | Tidak | string | Tidak ada | Digunakan untuk menentukan format keluaran:
|
guided_regex | Tidak | string | Tidak ada | Ekspresi reguler yang digunakan untuk membimbing decoding. |
guided_json | Tidak | string (string JSON valid) | Tidak ada | Scheme JSON dalam bentuk string, digunakan untuk membatasi dan membimbing decoding untuk menghasilkan JSON. |
guided_choice | Tidak | [string] | Tidak ada | Digunakan untuk membimbing decoding menghasilkan keluaran tertentu. |
guided_grammar | Tidak | string | Tidak ada | Aturan tata bahasa EBNF yang digunakan untuk membimbing decoding. |
guided_whitespace_pattern | Tidak | string | Tidak ada | Ekspresi reguler yang mewakili spasi putih dalam mode JSON untuk decoding terbimbing. |
Deskripsi parameter hasil kembali
Parameter | Deskripsi | |
id | Pengenal unik untuk penyelesaian permintaan. | |
model | Nama model. | |
choices | finish_reason | Alasan mengapa model berhenti menghasilkan token. |
index | Indeks. Tipe adalah Integer. | |
logprobs | Digunakan untuk merepresentasikan tingkat kepercayaan hasil prediksi. Untuk deskripsi parameter rinci, lihat deskripsi parameter konten. | |
text | Teks yang dihasilkan. | |
object | Tipe objek, tipe STRING, default adalah text_completion. | |
usage | prompt_tokens | Jumlah token dalam prompt masukan. |
completion_tokens | Jumlah token dalam konten yang dihasilkan atau diselesaikan. | |
total_tokens | Jumlah total token termasuk input dan output. | |
error_info | code | Kode kesalahan. |
message | Pesan kesalahan. | |
Chat Completions
Contoh pemanggilan
Baris perintah
# Panggil layanan EAS
# Ganti <Your EAS Token> dengan Token layanan; ganti <service_url> dengan endpoint layanan.
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: <Your EAS Token>" \
-d '{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}' \
<service_url>/v1/chat/completionsPython
# Skrip Python
import json
import requests
from typing import Dict, List
# <service_url>: Ganti dengan endpoint layanan.
url = "<service_url>/v1/chat/completions"
messages = [{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': 'Hello!'}]
req = {
"messages": messages,
"stream": True,
"temperature": 0.0,
"top_p": 0.5,
"top_k": 10,
"max_tokens": 300,
}
response = requests.post(
url,
json=req,
# <Your EAS Token>: Ganti dengan Token layanan.
headers={"Content-Type": "application/json", "Authorization": "<Your EAS Token>"},
stream=True,
)
for chunk in response.iter_lines(chunk_size=8192, decode_unicode=False):
msg = chunk.decode("utf-8")
if msg.startswith('data'):
info = msg[6:]
if info == '[DONE]':
break
else:
resp = json.loads(info)
print(resp['choices'][0]['delta']['content'], end='', flush=True)Deskripsi konfigurasi parameter permintaan
Parameter | Wajib | Tipe | Nilai default | Deskripsi |
model | Tidak | string | Tidak ada | Nama model, digunakan untuk menentukan nama LoRA. |
message | Tidak | array | Tidak ada | Daftar pesan percakapan. |
resume_response | Tidak | string | Tidak ada | Saat melanjutkan obrolan, Anda perlu memberikan pesan awal dan melanjutkan percakapan dengan meneruskan balasan pada saat terputus. |
max_tokens | Tidak | integer | 16 | Jumlah maksimum token yang akan dibuat dalam permintaan. |
echo | Tidak | boolean | False | Apakah mengembalikan prompt bersama dengan hasil yang dihasilkan. |
seed | Tidak | integer | Tidak ada | Biji acak. |
stream | Tidak | boolean | False | Apakah mendapatkan hasil yang dikembalikan secara streaming. |
temperature | Tidak | number | 1.0 | Mengontrol keacakan dan keragaman teks yang dihasilkan. Rentang nilai [0,1.0]. |
top_p | Tidak | number | 1.0 | Dari semua token yang diprediksi oleh model, pilih token yang paling mungkin dimana jumlah probabilitasnya mencapai top_p. Rentang nilai [0,1.0]. |
top_k | Tidak | integer | -1 | Menyimpan token top_k dengan probabilitas tertinggi. |
repetition_penalty | Tidak | number | 1.0 | Parameter penting untuk mengontrol keragaman teks yang dihasilkan.
|
presence_penalty | Tidak | number | 0.0 | Digunakan untuk mengontrol keragaman kosakata dalam teks yang dihasilkan.
|
frequency_penalty | Tidak | number | 0.0 | Digunakan untuk mengontrol tingkat hukuman atas frekuensi penggunaan ulang kata-kata yang sudah muncul saat menghasilkan teks.
|
stop (stop_sequences) | Tidak | string | Tidak ada | Digunakan untuk meminta model berhenti menghasilkan ketika teks tertentu ditemui selama pembuatan teks. |
stop_tokens | Tidak | [int] | Tidak ada | Digunakan untuk meminta model berhenti menghasilkan ketika ID Token tertentu ditemui selama pembuatan teks. |
ignore_eos | Tidak | boolean | False | Abaikan penanda akhir saat menghasilkan teks. |
logprobs | Tidak | integer | Tidak ada | Kembalikan distribusi probabilitas setiap token keluaran yang mungkin selama pembuatan teks. |
top_logprobs | Tidak | integer | Tidak ada | Jumlah token yang paling mungkin di setiap posisi token. |
response_format | Tidak | string | Tidak ada | Digunakan untuk menentukan format keluaran:
|
guided_regex | Tidak | string | Tidak ada | Ekspresi reguler yang digunakan untuk membimbing decoding. |
guided_json | Tidak | string (valid JSON string) | Tidak ada | Scheme JSON dalam bentuk string, digunakan untuk membatasi dan membimbing decoding untuk menghasilkan JSON. |
guided_choice | Tidak | [string] | Tidak ada | Digunakan untuk membimbing decoding menghasilkan keluaran tertentu. |
guided_grammar | Tidak | string | Tidak ada | Aturan tata bahasa EBNF yang digunakan untuk membimbing decoding. |
guided_whitespace_pattern | Tidak | string | Tidak ada | Ekspresi reguler yang mewakili spasi putih dalam mode JSON untuk decoding terbimbing. |
Deskripsi parameter hasil kembali
Parameter | Deskripsi | |
id | Pengenal unik untuk penyelesaian permintaan. | |
choices | finish_reason | Alasan mengapa model berhenti menghasilkan token. |
index | Indeks. Tipe adalah integer. | |
logprobs | Digunakan untuk merepresentasikan tingkat kepercayaan hasil prediksi. Untuk deskripsi parameter rinci, lihat deskripsi parameter konten. | |
message | Hasil kembali permintaan non-streaming. Mewakili pesan percakapan yang dihasilkan oleh model. | |
delta | Hasil kembali permintaan streaming. Mewakili pesan percakapan yang dihasilkan oleh model secara real-time. | |
object | Tipe objek, STRING type, default adalah text_completion. | |
usage | prompt_tokens | Jumlah token dalam prompt masukan. |
completion_tokens | Jumlah token dalam konten yang dihasilkan atau diselesaikan. | |
total_tokens | Jumlah total token termasuk input dan output. | |
error_info | code | Kode kesalahan. |
message | Pesan kesalahan. | |
Kode berikut memberikan contoh hasil yang dikembalikan:
Hasil kembali permintaan streaming
{
"id": "78544a80-6224-4b0f-a0c4-4bad94005eb1",
"choices": [{
"finish_reason": "",
"index": 0,
"logprobs": null,
"delta": {
"role": "assistant",
"content": ""
}
}],
"object": "chat.completion.chunk",
"usage": {
"prompt_tokens": 21,
"completion_tokens": 1,
"total_tokens": 22
},
"error_info": null
}Hasil kembali permintaan non-streaming
{
"id": "1444c346-3d35-4505-ae73-7ff727d00e8a",
"choices": [{
"finish_reason": "",
"index": 0,
"logprobs": null,
"message": {
"role": "assistant",
"content": "Hello! How can I assist you today?\n"
}
}],
"object": "chat.completion",
"usage": {
"prompt_tokens": 21,
"completion_tokens": 16,
"total_tokens": 37
},
"error_info": null
}