L'API Completions est conçue pour les scénarios de complétion de texte, tels que la complétion de code et la poursuite de contenu.
RemarqueCette documentation s'applique uniquement à la région Chine du Nord 2 (Pékin). Vous devez utiliser une clé API de la région Chine du Nord 2 (Pékin).
Modèles pris en charge
Les modèles Qwen Coder suivants sont pris en charge :
qwen-coder-turbo-latest
Prérequis
Obtenez une clé API et configurez-la en tant que variable d'environnement. Si vous utilisez le kit de développement logiciel (SDK) OpenAI, installez le SDK.
Premiers pas
Vous pouvez utiliser l'API Completions pour la complétion de texte. Deux scénarios de complétion de texte sont pris en charge :
- Générer du contenu qui suit un préfixe donné.
- Générer du contenu entre un préfixe et un suffixe donnés.
La génération de contenu précédant un suffixe donné n'est pas prise en charge.
Démarrage rapide
Transmettez des informations telles qu'un nom de fonction, des paramètres d'entrée et des instructions d'utilisation dans le préfixe. L'API Completions renvoie le code généré.
Le modèle d'invite est le suivant :
<|fim_prefix|>{prefix_content}<|fim_suffix|>
Dans ce modèle, {prefix_content} correspond aux informations de préfixe que vous transmettez.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
api_key=os.getenv("DASHSCOPE_API_KEY")
)
completion = client.completions.create(
model="qwen-coder-turbo-latest",
prompt="<|fim_prefix|>Write a Python quick sort function, def quick_sort(arr):<|fim_suffix|>",
)
print(completion.choices[0].text)
import OpenAI from "openai";
const openai = new OpenAI(
{
// If you have not configured environment variables, replace the following line with your Model Studio API key: apiKey: "sk-xxx",
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1"
}
);
async function main() {
const completion = await openai.completions.create({
model: "qwen-coder-turbo-latest",
prompt: "<|fim_prefix|>Write a Python quick sort function, def quick_sort(arr):<|fim_suffix|>",
});
console.log(completion.choices[0].text)
}
main();
curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-coder-turbo-latest",
"prompt": "<|fim_prefix|>Write a Python quick sort function, def quick_sort(arr):<|fim_suffix|>"
}'
Générer du contenu entre un préfixe et un suffixe
L'API Completions peut générer du contenu entre un préfixe et un suffixe donnés (FIM, Fill In The Middle). Transmettez des informations telles qu'un nom de fonction, des paramètres d'entrée et des instructions d'utilisation dans le préfixe. Transmettez des informations telles que les paramètres de retour de la fonction dans le suffixe. L'API Completions renvoie le code généré.
Le modèle d'invite est le suivant :
<|fim_prefix|>{prefix_content}<|fim_suffix|>{suffix_content}<|fim_middle|>
Dans ce modèle, {prefix_content} correspond aux informations de préfixe et {suffix_content} aux informations de suffixe.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
api_key=os.getenv("DASHSCOPE_API_KEY")
)
prefix_content = f"""def reverse_words_with_special_chars(s):
'''
Reverse each word in the string (preserving the position of non-alphabetic characters) and maintain the word order.
Example:
reverse_words_with_special_chars("Hello, world!") -> "olleH, dlrow!"
Parameters:
s (str): The input string, which may contain punctuation.
Returns:
str: The processed string, where words are reversed but non-alphabetic characters remain in their original positions.
'''
"""
suffix_content = "return result"
completion = client.completions.create(
model="qwen-coder-turbo-latest",
prompt=f"<|fim_prefix|>{prefix_content}<|fim_suffix|>{suffix_content}<|fim_middle|>",
)
print(completion.choices[0].text)
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1",
apiKey: process.env.DASHSCOPE_API_KEY
});
const prefixContent = `def reverse_words_with_special_chars(s):
'''
Reverse each word in the string (preserving the position of non-alphabetic characters) and maintain the word order.
Example:
reverse_words_with_special_chars("Hello, world!") -> "olleH, dlrow!"
Parameters:
s (str): The input string, which may contain punctuation.
Returns:
str: The processed string, where words are reversed but non-alphabetic characters remain in their original positions.
'''
`;
const suffixContent = "return result";
async function main() {
const completion = await client.completions.create({
model: "qwen-coder-turbo-latest",
prompt: `<|fim_prefix|>${prefixContent}<|fim_suffix|>${suffixContent}<|fim_middle|>`
});
console.log(completion.choices[0].text);
}
main();
curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-coder-turbo-latest",
"prompt": "<|fim_prefix|>def reverse_words_with_special_chars(s):\n\"\"\"\nReverse each word in the string (preserving the position of non-alphabetic characters) and maintain the word order.\n Example:\n reverse_words_with_special_chars(\"Hello, world!\") -> \"olleH, dlrow!\"\n Parameters:\n s (str): The input string, which may contain punctuation.\n Returns:\n str: The processed string, where words are reversed but non-alphabetic characters remain in their original positions.\n\"\"\"\n<|fim_suffix|>return result<|fim_middle|>"
}'
Paramètres d'entrée et de sortie
Paramètres d'entrée
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
model | string | Oui | Nom du modèle à appeler. |
prompt | string | Oui | Invite pour laquelle générer des complétions. |
max_tokens | integer | Non | Nombre maximal de jetons à renvoyer dans la réponse.
|
temperature | float | Non | Température d'échantillonnage, qui contrôle la diversité du texte généré. Une température plus élevée produit un texte plus diversifié, tandis qu'une température plus basse produit un texte plus déterministe. Valeurs valides : [0, 2.0). Étant donné que temperature et top_p contrôlent tous deux la diversité du texte, définissez uniquement l'un des deux. |
top_p | float | Non | Seuil de probabilité pour l'échantillonnage par noyau, qui contrôle la diversité du texte généré. Une valeur top_p plus élevée produit un texte plus diversifié, tandis qu'une valeur top_p plus basse produit un texte plus déterministe. Valeurs valides : (0, 1.0]. Étant donné que temperature et top_p contrôlent tous deux la diversité du texte, définissez uniquement l'un des deux. |
stream | boolean | Non | Indique si la réponse doit être diffusée en continu. Valeurs valides :
|
stream_options | object | Non | Lorsque la diffusion en continu est activée, définissez ce paramètre sur |
stop | string ou array | Non | Le modèle arrête automatiquement la génération de texte lorsqu'il est sur le point d'inclure la chaîne ou le Vous pouvez transmettre des mots sensibles dans le paramètre stop pour contrôler la sortie du modèle. |
seed | integer | Non | La définition du paramètre seed rend le processus de génération de texte plus déterministe. Cela est généralement utilisé pour garantir que le modèle produit des résultats cohérents à chaque exécution. Si vous transmettez la même valeur seed pour chaque appel de modèle et conservez les autres paramètres inchangés, le modèle renvoie autant que possible le même résultat. La valeur doit être comprise entre 0 et 231−1. |
presence_penalty | float | Non | Contrôle le degré de répétition du contenu lors de la génération de texte par le modèle. La valeur doit être comprise dans la plage [-2,0, 2,0]. Une valeur positive réduit la répétition, tandis qu'une valeur négative l'augmente. |
Paramètres de sortie
Paramètre | Type | Description |
|---|---|---|
id | string | Identifiant unique de l'appel. |
choices | array | Tableau contenant le contenu généré par le modèle. |
choices[0].text | string | Contenu généré par la requête. |
choices[0].finish_reason | string | Raison pour laquelle le modèle a arrêté de générer du contenu. |
choices[0].index | integer | Index de l'élément actuel dans le tableau. La valeur est fixée à 0. |
choices[0].logprobs | object | Ce paramètre est actuellement fixé à |
created | integer | Horodatage de création de la requête. |
model | string | Nom du modèle utilisé pour la requête. |
system_fingerprint | string | Ce paramètre est actuellement fixé à |
object | string | Type d'objet. Toujours défini sur |
usage | object | Statistiques d'utilisation de la requête. |
usage.prompt_tokens | integer | Nombre de jetons dans le |
usage.completion_tokens | integer | Nombre de jetons dans |
usage.total_tokens | integer | Somme de |
Codes d'erreur
Si l'appel au modèle échoue et renvoie un message d'erreur, consultez les Codes d'erreur pour résoudre le problème.