全部產品
Search
文件中心

Platform For AI:服務調用參數配置說明

更新時間:May 24, 2025

BladeLLM服務端提供了相容OpenAI /v1/completions/v1/chat/completions的介面,支援用戶端通過向/v1/completions/v1/chat/completions路徑發送HTTP POST請求調用服務。本文將介紹調用服務支援配置的參數說明以及返回結果的參數說明。

completions介面

調用樣本

命令列

# Call EAS service
# <Your EAS Token>替換為服務訪問地址;<service_url>替換為服務Token。
curl -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: <Your EAS Token>" \
    -d '{"prompt":"hello world", "stream":"true"}' \
    <service_url>/v1/completions

Python

# Python script
import json
import requests
from typing import Dict, List

#  <service_url>:替換為服務訪問地址。
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>:替換為服務Token。
    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)

請求參數配置說明

參數

是否必填

類型

預設值

描述

model

string

模型名稱,用於指定LoRA名稱。

prompt

string

輸入提示詞。

max_tokens

integer

16

請求產生的最大token個數。

echo

boolean

False

是否將提示詞與產生結果一起返回。

seed

integer

隨機種子。

stream

boolean

False

是否以流式方式擷取返回結果。

temperature

number

1.0

通過該參數來控制產生文本的隨機性和多樣性。取值範圍[0,1.0]。

top_p

number

1.0

從模型預測的所有可能的Token中,選擇機率總和達到top_p的那些最可能的Token。取值範圍[0,1.0]。

top_k

integer

-1

保留機率最高的top_k個Token。

repetition_penalty

number

1.0

用於控制產生文本多樣性的重要參數。

  • >1.0:會減少重複詞或短語出現的可能性。

  • <1.0:增加重複詞或短語出現的可能性。

  • =1.0:不對重複性施加額外懲罰或獎勵。

presence_penalty

number

0.0

用於控制產生文本中的詞彙多樣性。

  • >0:已經在產生文本中出現的詞,被選為下一個詞的機率會降低。

  • <0:增加這類詞被重新使用的可能性。

  • =0:模型將按照原始機率分布選擇下一個詞。

frequency_penalty

number

0.0

用來控制產生文本時對已出現詞語的重複使用頻率進行懲罰的程度。

  • >0:對於已出現過多次的詞,被選中的機率將會降低。

  • <0:對於已出現過多次的詞,會增加這些詞語被重複選用的可能性。

  • =0:模型將按照原始機率分布選擇下一個詞。

stop(stop_sequences)

[string]

用於提示模型在產生文本過程中,遇到特定文本時停止產生。例如["</s>"]

stop_tokens

[int]

用於提示模型在產生文本過程中,遇到特定Token ID時停止產生。

ignore_eos

boolean

False

在產生文本時忽略結束標記。

logprobs

integer

模型在產生文本過程中,返回每個可能輸出Token的機率分布。

response_format

string

用來指定輸出格式:

  • json_object:輸出JSON對象。

  • text:輸出文本。

guided_regex

string

用於引導解碼的Regex。

guided_json

string(合法的JSON字串)

字串形式的JSON Scheme,用於約束引導解碼產生JSON。

guided_choice

[string]

用於引導解碼產生給定的某個輸出。

guided_grammar

string

用於指導解碼的EBNF文法規則。

guided_whitespace_pattern

string

用於指導解碼的JSON模式下制定表示空格的Regex。

返回結果參數說明

參數

說明

id

用於標識請求完成的唯一識別碼。

model

模型名稱。

choices

finish_reason

模型停止產生Token的原因。

index

索引。類型為Integer。

logprobs

用來表示預測結果的信賴度。詳細的參數說明,請參見content參數說明

text

產生的文本。

object

物件類型,STRING類型,預設為text_completion。

usage

prompt_tokens

輸入提示(prompt)中包含的Token數量。

completion_tokens

產生內容或補全內容的Token數量。

total_tokens

包括輸入和輸出在內的總的Token數。

error_info

code

錯誤碼。

message

錯誤資訊。

content參數說明

參數

描述

id

Token ID。

token

Token文本。

logprob

對數機率值。

is_special

是否是一個特殊Token。預設值為False。

bytes

一個整數列表,代表該Token在UTF-8編碼下的位元組序列。

top_logprobs

最有可能出現的Token及其對應的對數機率列表。

Chat Completions

調用樣本

命令列

# Call EAS service
# <Your EAS Token>替換為服務訪問地址;<service_url>替換為服務Token。
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/completions

Python

# Python script
import json
import requests
from typing import Dict, List

#  <service_url>:替換為服務訪問地址。
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>:替換為服務Token。
    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)

請求參數配置說明

參數

是否必填

類型

預設值

描述

model

string

模型名稱,用於指定LoRA名稱。

message

array

對話訊息列表。

[ {“role”: “user”, “content”: “hello”}, {“role”: “assistant”, “content”: “what can I do for you?”}, {“role”: “user”, “content”: “what is the capital of Canada?” } ]

resume_response

string

在恢複聊天時,需要提供初始訊息,並通過傳遞中斷時的回複來繼續對話。

max_tokens

integer

16

請求產生的最大token個數。

echo

boolean

False

是否將提示詞prompt與產生結果一起返回。

seed

integer

隨機種子。

stream

boolean

False

是否以流式方式擷取返回結果。

temperature

number

1.0

通過該參數來控制產生文本的隨機性和多樣性。取值範圍[0,1.0]。

top_p

number

1.0

從模型預測的所有可能的Token中,選擇機率總和達到top_p的那些最可能的Token。取值範圍[0,1.0]。

top_k

integer

-1

保留機率最高的top_k個Token。

repetition_penalty

number

1.0

用於控制產生文本多樣性的重要參數。

  • >1.0:會減少重複詞或短語出現的可能性。

  • <1.0:增加重複詞或短語出現的可能性。

  • =1.0:不對重複性施加額外懲罰或獎勵。

presence_penalty

number

0.0

用於控制產生文本中的詞彙多樣性。

  • >0:已經在產生文本中出現的詞,被選為下一個詞的機率會降低。

  • <0:增加這類詞被重新使用的可能性。

  • =0:模型將按照原始機率分布選擇下一個詞。

frequency_penalty

number

0.0

用來控制產生文本時對已出現詞語的重複使用頻率進行懲罰的程度。

  • >0:對於已出現過多次的詞,被選中的機率將會降低。

  • <0:對於已出現過多次的詞,會增加這些詞語被重複選用的可能性。

  • =0:模型將按照原始機率分布選擇下一個詞。

stop(stop_sequences)

string

用於提示模型在產生文本過程中,遇到特定文本時停止產生。

stop_tokens

[int]

用於提示模型在產生文本過程中,遇到特定Token ID時停止產生。

ignore_eos

boolean

False

在產生文本時忽略結束標記。

logprobs

integer

模型在產生文本過程中,返回每個可能輸出Token的機率分布。

top_logprobs

integer

在每個Token位置上,最有可能出現的Token數量。

response_format

string

用來指定輸出格式:

  • json_object:輸出JSON對象。

  • text:輸出文本。

guided_regex

string

用於引導解碼的Regex。

guided_json

string(合法的JSON字串)

字串形式的JSON Scheme,用於約束引導解碼產生JSON。

guided_choice

[string]

用於引導解碼產生給定的某個輸出。

guided_grammar

string

用於指導解碼的EBNF文法規則。

guided_whitespace_pattern

string

用於指導解碼的JSON模式下制定表示空格的Regex。

返回結果參數說明

參數

說明

id

用於標識請求完成的唯一識別碼。

choices

finish_reason

模型停止產生Token的原因。

index

索引。類型為integer。

logprobs

用來表示預測結果的信賴度。詳細的參數說明,請參見content參數說明

message

非流式請求返回結果。表示模型產生的對話訊息。

delta

流式請求返回結果。表示通過即時模型產生的對話訊息。

object

物件類型,STRING類型,預設為text_completion。

usage

prompt_tokens

輸入提示(prompt)中包含的Token數量。

completion_tokens

產生內容或補全內容的Token數量。

total_tokens

包括輸入和輸出在內的總的Token數。

error_info

code

錯誤碼。

message

錯誤資訊。

返回結果樣本如下:

流式請求返回結果

{
    "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
}

非流式請求返回結果

{
    "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
}