DeepSeek: DeepSeek V3.1
DeepSeek V3.1 est un modèle textuel hybride avec des modes de raisonnement et de réponse directe réunis dans une même édition. Son contexte de 128K et son profil amélioré d’utilisation d’outils prennent en charge la programmation, l’analyse documentaire et la recherche fournie par l’application, avec du texte ou des appels d’outils proposés comme résultat.
À propos du modèle
Cette description présente les capacités du modèle. Les entrées, sorties et options disponibles dans Ailoot pour la méthode sélectionnée figurent ci-dessous.
DeepSeek V3.1 est le modèle textuel hybride de DeepSeek : la même édition nommée prend en charge les réponses avec et sans raisonnement au moyen de réglages différents du gabarit de conversation. Le producteur met en avant une meilleure utilisation des outils, les tâches d’agents et une efficacité de raisonnement accrue par rapport au modèle précédent. Il accepte des instructions écrites et un contexte textuel et génère une réponse, du code ou du contenu d’appel d’outil. L’identité V3.1 d’origine est distincte de Terminus, de V3.2 et de la famille V4.
La fiche de modèle indique 671 milliards de paramètres au total, 37 milliards de paramètres actifs et un contexte de 128K pour ses éditions de base et post-entraînée. V3.1 s’appuie sur la base V3 d’origine avec un entraînement prolongé sur de longs documents avant le post-entraînement. Sa structure à mélange d’experts et à attention latente suit l’architecture V3. Ces faits de conception expliquent le profil textuel à contexte long sans transformer la valeur de contexte en spécification distincte de sortie maximale.
Le mode sans raisonnement prépare une réponse directe, tandis que le mode avec raisonnement commence par une phase de réflexion avant la réponse. Le gabarit de conversation du producteur utilise un marqueur de fermeture de réflexion pour les réponses directes et un marqueur d’ouverture pour le tour de raisonnement actuel. Dans une conversation à plusieurs échanges, le contenu de raisonnement antérieur est supprimé tandis que les réponses finales et le marqueur de fermeture restent dans le contexte. Il s’agit de la règle d’historique V3.1 d’origine, distincte de la règle V3.2 ultérieure qui préserve le raisonnement entre les messages liés aux outils.
L’appel d’outils standard est documenté en mode sans raisonnement. L’application fournit les noms de fonctions, les descriptions et les schémas de paramètres ; le modèle renvoie un nom d’outil sélectionné et des arguments JSON dans la représentation des appels d’outils du producteur. L’application exécute l’opération et renvoie son résultat. Donnez aux outils des objectifs précis et gardez l’observation renvoyée liée à l’appel, afin que l’étape suivante du modèle dispose de preuves plutôt que de l’hypothèse qu’une action a eu lieu.
La recherche en mode avec raisonnement utilise un format spécialisé distinct d’agent de recherche. DeepSeek documente un outil de recherche fourni par l’utilisateur pour les questions nécessitant des informations externes ou actuelles, avec des appels et observations répétés sur plusieurs échanges. La recherche fait donc partie du processus environnant, sans signifier qu’une réponse textuelle a navigué par elle-même sur le Web. Définissez la question, les critères de sources et la réponse finale nécessaire avant le début de la tâche de recherche.
Pour la programmation, fournissez le fragment ou les fichiers pertinents, le comportement observé, le comportement attendu et les contraintes à préserver. Exemple de consigne : « Identifiez la cause de cet échec pour l’entrée fournie, proposez une correction ciblée et expliquez la condition prise en charge par cette modification. » Pour une tâche documentaire, identifiez les sections sources et demandez une comparaison selon des exigences explicites. Exigez que la réponse finale distingue la conclusion étayée par les sources d’une prochaine action proposée.
Le producteur entraîne V3.1 en utilisant le format d’échelle UE8M0 FP8 pour les poids et les activations. Ses recommandations locales identifient aussi des paramètres sensibles à la précision qui doivent être traités correctement. Ce sont des caractéristiques de la référence publiée du producteur, sans affirmer quoi que ce soit sur la précision ou l’implémentation choisies par chaque application. Un dérivé, une variante quantifiée et le point de contrôle Terminus ultérieur restent des choix distincts de l’édition V3.1 d’origine nommée.
Préparez les travaux plus longs avec une question claire, des étiquettes sources et un livrable final défini. Répartissez le budget entre la conversation, le texte source, le raisonnement et la sortie dans le contexte documenté, et ne gardez que les preuves pertinentes à mesure que la tâche grandit. Pour un agent, précisez les actions autorisées et le critère marquant l’achèvement du résultat. Le livrable utile est une réponse textuelle examinable, une proposition de code ou une analyse étayée par des sources, reliée à l’entrée et aux observations effectivement renvoyées par l’application.
Ailoot Ultra · Chat OpenAI POST /v1/chat/completions deepseek-v3.1-thinking
deepseek-v3.1-thinkingPremiers pas
DeepSeek V3.1 est un modèle textuel hybride avec des modes de raisonnement et de réponse directe réunis dans une même édition. Son contexte de 128K et son profil amélioré d’utilisation d’outils prennent en charge la programmation, l’analyse documentaire et la recherche fournie par l’application, avec du texte ou des appels d’outils proposés comme résultat.
- Entrées acceptées
- Texte
- Résultats
- Texte
Disponible dans Ailoot · entrées et méthodes
Ailoot Ultra · Chat OpenAI POST /v1/chat/completions
- Entrée
text- Sortie
text- Format de sortie
- json ou SSE
| Champ | Type | Exigence | Valeurs et limites | Par défaut |
|---|---|---|---|---|
Champmodel | Typestring | ExigenceObligatoire | Valeurs et limites deepseek-v3.1-thinking | Par défaut— |
Champmessages | Typemessage[] | ExigenceObligatoire | Valeurs et limites Nombre minimal d’éléments: 1 | Par défaut— |
Champmessages[].role | Typestring | ExigenceObligatoire | Valeurs et limites Selon le modèle | Par défaut— |
Champmessages[].content | Typestring | ExigenceFacultatif | Valeurs et limites S’applique lorsque: Conversation textuelle | Par défaut— |
Champstream | Typeboolean | ExigenceFacultatif | Valeurs et limites | Par défautfalse |
Combinaisons d’éléments d’entrée
Texte · Texte UTF8
messages[].content
Paramètres et cycle de vie de la méthode
| Paramètre | Contrat |
|---|---|
Paramètrecontent_type | Contratapplication/json |
Paramètrerequired | Contratmodel, messages |
Paramètrematerial_types | Contrattext |
Paramètremessages | Contrattableau de messages avec une structure role/content |
Paramètrefile_material | Contratdocument UTF-8 réel inséré sous forme de texte littéral ; aucun identifiant de fichier déduit |
Paramètreoptional_controls | Contratstream |
Paramètrecontrol_scope | ContratConversation textuelle ; stream est un booléen dont la valeur par défaut est false. |
Paramètreoutput_modalities | Contrattext |
Paramètrehosted_operations | Contratfalse |
Paramètremultimodal_input_binding | Contratnull |
Alias de méthode : /chat/completions
Cycle de vie : synchronous_or_streamed
Envoyez l’identifiant exact du modèle avec messages.
La longueur du contexte n’est pas un plafond de sortie.
Un fichier texte peut fournir du texte littéral ; les entrées image/audio/objets fichier nécessitent une liaison exacte.
Tarifs
Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.
- Mode rapide
- Non précisé Lorsque le mode rapide est sélectionné
- Mode Flex
- Non précisé Lorsque le mode flex est sélectionné
- Effort de raisonnement maximal
- Non précisé Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)
Tarifs Ailoot
Prix par configuration
| Configuration | Barème tarifaire | Coût |
|---|---|---|
| ConfigurationTarifs de base des tokens | Barème tarifaireTarif de base | Coût Entrée · Tokens en entrée $0.000572 / 1K tokens Sortie · Tokens en sortie $0.0023 / 1K tokens Entrée · Lecture du cache $0 / 1K tokens Entrée · Écriture dans le cache $0 / 1K tokens Entrée · Écriture dans le cache, 1 h — / 1K tokens |
Ailoot réserve un montant estimé avant une requête. Après le résultat, le montant final est débité selon l’utilisation mesurée. Pour le streaming, le montant final à débiter est calculé à partir du relevé final d’utilisation. Fonctionnement de la réservation et du débit →
Exemples de requêtes
Ailoot Ultra · Chat OpenAI
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"deepseek-v3.1-thinking","messages":[{"role":"user","content":"hello"}],"stream":false}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os
if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model="deepseek-v3.1-thinking", messages=[{"role":"user","content":"hello"}], stream=False)
import base64, json
from pathlib import Path
def save_result(data, stem="result"):
# Keep every field, including usage, IDs, reasoning and tool requests.
Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
print(json.dumps(data, ensure_ascii=False, indent=2))
def save_blob(encoded, suffix, label):
raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
file = Path(stem + "-" + label + "." + ext)
file.write_bytes(raw)
print("Saved", file)
for index, block in enumerate(data.get("content") or []):
print("Content", index, json.dumps(block, ensure_ascii=False))
for choice in data.get("choices") or []:
print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
for index, item in enumerate(data.get("output") or []):
print("Output", index, json.dumps(item, ensure_ascii=False))
if item.get("type") == "image_generation_call" and item.get("result"):
save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
for ci, candidate in enumerate(data.get("candidates") or []):
for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
blob = part.get("inlineData") or part.get("inline_data")
if blob and blob.get("data"):
mime = blob.get("mimeType") or blob.get("mime_type")
suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))
save_result(result.to_dict(mode="json"))
Recevoir et enregistrer les résultats
Ailoot Ultra · Chat OpenAI
json ou SSE
Conserver tous les résultats terminés
Conservez chaque réponse, fichier et partie de contenu renvoyés dans leur intégralité.
Conservez chaque choix avec son contenu, ses appels d’outils et son raisonnement. En SSE, assemblez les deltas par index de choix et d’outil, puis conservez le motif final de terminaison et les données d’utilisation.
Si la réponse d’origine doit être vérifiée
Conservez les identifiants de requête et de réponse ainsi que les en-têtes. Aucune URL générique de récupération des tâches textuelles n’est fournie.
Champs de la réponse
| Champ | Type |
|---|---|
Champchoices[].index | Typeinteger |
Champchoices[].message.content | Typestring|null |
Champchoices[].message.tool_calls | Typetool_call[] |
Champchoices[].message.reasoning_content | Typestring |
Champchoices[].message.reasoning_details | Typeobject|array |
Champchoices[].finish_reason | Typestring|null |
Champusage | Typeobject |
Erreurs et étapes suivantes
| Réponse | Condition | Étape suivante |
|---|---|---|
Réponse400 · invalid_request_error | ConditionChamps obligatoires, représentation des contenus ou valeur de paramètre non valides | Étape suivanteCorrigez les champs indiqués avant une nouvelle requête de création. |
Alias
Alias du modèle
Ailoot Ultra deepseek-v3.1-thinking
Alias des chemins de méthode
/chat/completions
ID d’appel associés
FAQ · DeepSeek: DeepSeek V3.1
- Quelles entrées et quels résultats sont disponibles ?
POST /v1/chat/completions·deepseek-v3.1-thinking:text→text- Quels champs la requête utilise-t-elle ?
POST /v1/chat/completions·deepseek-v3.1-thinking:model,messages,stream- Quelles limites s’appliquent ?
POST /v1/chat/completions·deepseek-v3.1-thinking:messages.min_items:1