Przejdź do głównej treści
DeepSeek to bardzo potężny system AI do rozmów, który po wprowadzeniu podpowiedzi potrafi w ciągu kilku sekund wygenerować płynne i naturalne odpowiedzi. DeepSeek-V3 wyróżnia się w branży dzięki swoim doskonałym zdolnościom rozumienia i generowania języka, a obecnie jest szeroko stosowany w różnych branżach i dziedzinach, a jego wpływ staje się coraz bardziej znaczący. Niezależnie od tego, czy chodzi o codzienne rozmowy, kreatywne pisanie, czy profesjonalne doradztwo, programowanie kodu, DeepSeek-V3 może zapewnić zdumiewającą inteligentną pomoc, znacznie zwiększając wydajność i kreatywność ludzi. Dokument ten głównie opisuje proces korzystania z DeepSeek Chat Completion API, dzięki któremu możemy łatwo korzystać z oficjalnej funkcji rozmowy DeepSeek.

申请流程

Aby skorzystać z DeepSeek Chat Completion API, najpierw można przejść na stronę DeepSeek Chat Completion API i kliknąć przycisk „Acquire”, aby uzyskać potrzebne poświadczenia: Jeśli nie jesteś zalogowany lub zarejestrowany, automatycznie zostaniesz przekierowany na stronę logowania, aby zarejestrować się i zalogować, a po zalogowaniu lub rejestracji automatycznie wrócisz na bieżącą stronę. Podczas pierwszej aplikacji otrzymasz darmowy limit, który pozwala na bezpłatne korzystanie z tego API.

基本使用

Następnie możesz wypełnić odpowiednie treści na interfejsie, jak pokazano na obrazku:

Podczas pierwszego korzystania z tego interfejsu musimy wypełnić co najmniej trzy pola: jedno to authorization, które można wybrać bezpośrednio z rozwijanej listy. Kolejnym parametrem jest model, model to kategoria modelu, którą wybieramy do użycia z oficjalnej strony DeepSeek, mamy tutaj głównie 4 rodzaje modeli, szczegóły można zobaczyć w dostarczonych modelach. Ostatnim parametrem jest messages, messages to tablica naszych pytań, jest to tablica, która pozwala na jednoczesne przesyłanie wielu pytań, każde pytanie zawiera role i content, gdzie role oznacza rolę pytającego, oferujemy trzy tożsamości: user, assistant, system. Drugim content jest konkretna treść naszego pytania. Możesz również zauważyć, że po prawej stronie znajduje się odpowiedni kod wywołania, który możesz skopiować i uruchomić, lub możesz po prostu kliknąć przycisk „Try”, aby przetestować. Często używane opcjonalne parametry:
  • max_tokens: ogranicza maksymalną liczbę tokenów w pojedynczej odpowiedzi.
  • temperature: generuje losowość, w zakresie od 0 do 2, im wyższa wartość, tym bardziej rozproszone.
  • n: ile kandydatów odpowiedzi generować jednocześnie.
  • response_format: ustawienia formatu odpowiedzi.

Po wywołaniu zauważamy, że wynik zwrotny wygląda następująco:
{
  "id": "chatcmpl-050bf20a-ebcd-498a-bf6e-63ee0738013b",
  "object": "chat.completion",
  "created": 1764846609,
  "model": "deepseek-v3.2-exp",
  "usage": {
    "prompt_tokens": 8,
    "completion_tokens": 11,
    "total_tokens": 19
  },
  "choices": [
    {
      "index": 0,
      "message": {
        "content": "Hello! 😊 How can I help you today?",
        "role": "assistant"
      },
      "refs": null,
      "logprobs": null,
      "finish_reason": "stop",
      "service_tier": null
    }
  ]
}
Wynik zwrotny zawiera wiele pól, które są opisane poniżej:
  • id, identyfikator zadania rozmowy, używany do unikalnego oznaczania tego zadania rozmowy.
  • created, informacja o czasie utworzenia tego zadania rozmowy.
  • model, wybrany model z oficjalnej strony DeepSeek.
  • choices, odpowiedzi DeepSeek na pytania.
  • usage: statystyki dotyczące tokenów dla tej sesji pytań i odpowiedzi.
Wśród nich choices zawiera informacje o odpowiedziach DeepSeek, a w nim choices to informacje o odpowiedziach DeepSeek, co można zobaczyć na obrazku.

Można zauważyć, że pole content w choices zawiera konkretną treść odpowiedzi DeepSeek.

流式响应

Ten interfejs obsługuje również odpowiedzi strumieniowe, co jest bardzo przydatne w integracji z stronami internetowymi, umożliwiając wyświetlanie efektu literowego. Jeśli chcesz, aby odpowiedź była zwracana strumieniowo, możesz zmienić parametr stream w nagłówku żądania na true. Zmiana jak pokazano na obrazku, jednak kod wywołania musi być odpowiednio zmieniony, aby obsługiwał odpowiedzi strumieniowe.

Po zmianie stream na true, API będzie zwracać odpowiednie dane JSON w wierszach, a na poziomie kodu musimy wprowadzić odpowiednie zmiany, aby uzyskać wyniki w wierszach. Przykładowy kod wywołania w Pythonie:
import requests

url = "https://api.acedata.cloud/deepseek/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "deepseek-v3",
    "messages": [{"role":"user","content":"hello"}],
    "stream": True
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Efekt wyjściowy wygląda następująco:
data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "Cześć", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "!", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " 😊", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " Jak", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " mogę", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " ja", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " pomóc", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " ci", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " dzisiaj", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "?", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "", "role": "assistant"}, "logprobs": null, "finish_reason": "stop", "index": 0}], "usage": {"prompt_tokens": 4, "completion_tokens": 12, "total_tokens": 16, "prompt_tokens_details": {"cached_tokens": 0, "text_tokens": 0, "audio_tokens": 0, "image_tokens": 0}, "completion_tokens_details": {"text_tokens": 0, "audio_tokens": 0, "reasoning_tokens": 0}, "input_tokens": 0, "output_tokens": 0, "input_tokens_details": null}}

data: [DONE]
Można zauważyć, że odpowiedź zawiera wiele data, a data wewnątrz choices to najnowsza treść odpowiedzi, zgodna z wcześniej przedstawioną treścią. choices to nowa treść odpowiedzi, którą można zintegrować z systemem. Zakończenie strumieniowej odpowiedzi można ocenić na podstawie zawartości data; jeśli zawartość to [DONE], oznacza to, że strumieniowa odpowiedź została całkowicie zakończona. Zwracane wyniki data mają wiele pól, które są opisane poniżej:
  • id, identyfikator generujący zadanie rozmowy, używany do unikalnej identyfikacji tego zadania.
  • model, wybrany model DeepSeek.
  • choices, informacje o odpowiedzi udzielone przez DeepSeek w odpowiedzi na zapytanie.
JavaScript również jest obsługiwany, na przykład kod do strumieniowego wywołania w Node.js wygląda następująco:
const options = {
  method: "post",
  headers: {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
  },
  body: JSON.stringify({
    "model": "deepseek-v3",
    "messages": [{"role":"user","content":"cześć"}],
    "stream": true
  })
};

fetch("https://api.acedata.cloud/deepseek/chat/completions", options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));
Przykładowy kod w Javie:
JSONObject jsonObject = new JSONObject();
jsonObject.put("model", "deepseek-v3");
jsonObject.put("messages", [{"role":"user","content":"cześć"}]);
jsonObject.put("stream", true);
MediaType mediaType = "application/json; charset=utf-8".toMediaType();
RequestBody body = jsonObject.toString().toRequestBody(mediaType);
Request request = new Request.Builder()
  .url("https://api.acedata.cloud/deepseek/chat/completions")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {token}")
  .addHeader("content-type", "application/json")
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();
System.out.print(response.body!!.string())
Inne języki można dostosować samodzielnie, zasada jest taka sama.

Wieloetapowa rozmowa

Jeśli chcesz zintegrować funkcję wieloetapowej rozmowy, musisz przesłać wiele zapytań w polu messages, a konkretne przykłady wielu zapytań są pokazane na poniższym obrazku:

Przykładowy kod wywołania w Pythonie:
import requests

url = "https://api.acedata.cloud/deepseek/chat/completions"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "deepseek-v3",
    "messages": [{"role":"user","content":"Cześć"},{"role":"assistant","content":"Cześć! Jak mogę Ci dzisiaj pomóc?"},{"role":"user","content":"Co powiedziałem przed chwilą?"}]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
Przesyłając wiele pytań, można łatwo zrealizować wieloetapową rozmowę, uzyskując następującą odpowiedź:
{
  "id": "as-8g3qzbsw2b",
  "object": "chat.completion",
  "created": 1755437895,
  "model": "deepseek-v3",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Właśnie powiedziałeś:  \n\n**\"Cześć\"**  \n\nA ja odpowiedziałem:  \n\n**\"Cześć! Jak mogę Ci dzisiaj pomóc?\"**  \n\nNastępnie zapytałeś:  \n\n**\"Co powiedziałem przed chwilą?\"**  \n\nDaj znać, jak mogę pomóc! 😊"
      },
      "finish_reason": "stop",
      "flag": 0
    }
  ],
  "usage": {
    "prompt_tokens": 22,
    "completion_tokens": 57,
    "total_tokens": 79
  }
}
Można zauważyć, że informacje zawarte w choices są zgodne z podstawowym użyciem, co zawiera konkretne odpowiedzi DeepSeek na wiele rozmów, dzięki czemu można odpowiadać na odpowiednie pytania na podstawie wielu treści rozmowy.

Obsługa błędów

Podczas wywoływania API, jeśli wystąpi błąd, API zwróci odpowiedni kod błędu i informacje. Na przykład:
  • 400 token_mismatched: Złe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
  • 400 api_not_implemented: Złe żądanie, prawdopodobnie z powodu brakujących lub nieprawidłowych parametrów.
  • 401 invalid_token: Nieautoryzowany, nieprawidłowy lub brakujący token autoryzacyjny.
  • 429 too_many_requests: Zbyt wiele żądań, przekroczono limit szybkości.
  • 500 api_error: Błąd wewnętrzny serwera, coś poszło nie tak na serwerze.

Przykład odpowiedzi błędu

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "pobieranie nie powiodło się"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Wnioski

Dzięki temu dokumentowi zrozumiałeś, jak łatwo zrealizować funkcję rozmowy DeepSeek Chat Completion API. Mamy nadzieję, że ten dokument pomoże Ci lepiej zintegrować i korzystać z tego API. W razie jakichkolwiek pytań, skontaktuj się z naszym zespołem wsparcia technicznego.