Ruka hadi maudhui makuu
Mafunzo ya AI

Badilisha Maombi ya AI ya Miundo Mingi kuwa Vidokezo vya DeepSeek V4.1 ukitumia deepseek-recipe

Jifunze jinsi ya kusakinisha na kutumia deepseek-recipe kutoka Python au Rust, kubadilisha maombi ya Chat Completions kuwa mazungumzo, kutoa vidokezo vya DeepSeek V4.1, na kuchunguza utiririshaji, uwekaji wa tokeni, uchakataji wa awali wa picha, na uchanganuzi wa matokeo.

Badilisha Maombi ya AI ya Miundo Mingi kuwa Vidokezo vya DeepSeek V4.1 ukitumia deepseek-recipe

deepseek-recipe ni nini?

deepseek-recipe ni mkusanyiko wa maktaba za Rust na viunganishi vya Python vya kuunganisha huduma za API na mifumo ya uelekezaji ya DeepSeek. Hubadilisha maombi kutoka miundo ya API inayotumika kuwa uwakilishi wa pamoja wa Conversation, hutoa mazungumzo hayo kama vidokezo vya DeepSeek V4 au V4.1, na hubadilisha matokeo ya modeli kuwa muundo wa majibu unaolingana.

Mradi huu ni safu ya itifaki na uchakataji wa vidokezo, si seva kamili ya uelekezaji. Lazima utoe uelekezaji wa modeli, usafirishaji wa HTTP, na utekelezaji wa zana kando.

Mchakato wa uchakataji unavyofanya kazi

  1. Pokea ombi katika muundo wa Messages, Chat Completions, au Responses.
  2. Badilisha ombi kuwa muundo wa pamoja wa Conversation wa maktaba.
  3. Toa mazungumzo kama kidokezo cha DeepSeek V4 au V4.1, au yasimbie kuwa vitambulisho vya tokeni.
  4. Tuma kidokezo au vitambulisho vya tokeni kwenye mfumo wa nje wa uelekezaji.
  5. Changanua matokeo yaliyotengenezwa, ikijumuisha maudhui ya kufikiri yanayotumika, miito ya zana, vitu vya JSON, na mfuatano wa kusitisha.
  6. Rudisha jibu kamili au la mtiririko katika muundo unaotarajiwa na mteja.

deepseek-recipe haiendeshi modeli, haitekelezi zana, wala haitoi huduma ya HTTP yenyewe. Seva za mfano za Rust na Python zinapatikana kwenye hazina kama marejeleo ya ujumuishaji.

Vipengele muhimu

  • Ubadilishaji wa itifaki uliounganishwa: Hushughulikia maombi na majibu ya Messages, Chat Completions, na Responses.
  • Usimbaji wa vidokezo vya DeepSeek: Hutoa mazungumzo ya DeepSeek V4 na V4.1 kama vidokezo au vitambulisho vya tokeni.
  • Majibu ya mtiririko na kamili: Huwezesha ubadilishaji wa mitindo yote miwili ya majibu.
  • Mipangilio ya uzalishaji: Hubeba hali ya kufikiri, kiwango cha mantiki, temperature, top_p, na vikomo vya tokeni za matokeo.
  • Uchanganuzi wa matokeo: Hutambua maudhui ya kufikiri, miito ya zana za mteja, matokeo ya kitu cha JSON, na mifuatano ya kusitisha.
  • Ingizo la aina nyingi: Hukubali picha zilizotolewa kama data ya base64 au URL za nje. Kifurushi cha picha hutoa uchakataji wa awali wa DeepSeek V4.1 kwa kutumia OpenCV.
  • Ufafanuzi wa zana: Huwezesha zana za vitendaji. Responses API pia huwezesha nafasi za majina za zana na zana maalum ya apply_patch.

Usakinishaji na usanidi wa Python

Mahitaji

Viunganishi vya Python vinahitaji Python 3.10 au mpya zaidi. Sakinisha kifurushi kilichochapishwa kwa kutumia pip:

python3 -m pip install deepseek-recipe

Moduli iliyosakinishwa huingizwa kama deepseek_recipe.

Badilisha ombi la Chat Completions

Mfano ufuatao huunda ombi la Chat Completions, hulibadilisha kuwa uwakilishi wa pamoja wa Conversation, na kutoa mazungumzo hayo kama kidokezo cha DeepSeek V4.1:

from deepseek_recipe import (
    ChatCompletionRequest,
    ConversionOptions,
    DeepseekV41Encoding,
)

request = ChatCompletionRequest({
    "model": "deepseek-flash",
    "messages": [
        {"role": "user", "content": "Hello"}
    ],
})

converted = request.convert(ConversionOptions())
rendered = DeepseekV41Encoding().render_conversation(
    converted.conversation
)

print(rendered.prompt)

Elewa kila hatua

  1. ChatCompletionRequest husoma data inayoingia ya Chat Completions.
  2. request.convert(ConversionOptions()) husawazisha ombi kuwa Conversation.
  3. DeepseekV41Encoding() huchagua kanuni za usimbaji za DeepSeek V4.1.
  4. render_conversation huunda uwakilishi ulio tayari kwa modeli.
  5. rendered.prompt huwa na kidokezo cha kutuma kwenye mfumo wako wa nje wa uelekezaji.

Baada ya uelekezaji, tumia vipengele vya ubadilishaji wa majibu na uchanganuzi wa matokeo vya mradi kutafsiri matokeo yaliyotengenezwa na modeli kuwa muundo wa API unaohitajika na mteja wako. Ujumuishaji kamili hutegemea ikiwa mfumo wako wa nyuma unarudisha matokeo kamili au unatiririsha data iliyotengenezwa.

Usakinishaji na usanidi wa Rust

Ongeza crates

Ongeza crates za ubadilishaji wa itifaki na usimbaji kwenye mradi wa Rust:

cargo add deepseek-recipe@0.1 deepseek-recipe-encoding@0.1

Ikiwa unaunda kutoka kwenye msimbo chanzo au kuwezesha uchakataji wa picha, soma mwongozo wa maendeleo wa hazina kwa maagizo ya ujenzi na vitegemezi vya picha.

Toa kidokezo cha DeepSeek V4.1

use deepseek_recipe::openai::ChatCompletionRequest;
use deepseek_recipe::request::{ConversionOptions, ProtocolRequest};
use deepseek_recipe_encoding::PromptEncoding;
use deepseek_recipe_encoding::v4::dsv41::DeepseekV41Encoding;
use serde_json::json;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let request: ChatCompletionRequest = serde_json::from_value(json!({
        "model": "deepseek-flash",
        "messages": [
            {"role": "user", "content": "Hello"}
        ],
    }))?;

    let converted = request.convert(ConversionOptions::default())?;
    let rendered = DeepseekV41Encoding::new()
        .render_conversation(&converted.conversation);

    println!("{}", rendered.prompt);
    Ok(())
}

Hapa, Serde hubadilisha JSON kuwa ChatCompletionRequest. Sifa ya ProtocolRequest hutoa ubadilishaji wa ombi, huku PromptEncoding ikitoa uwasilishaji wa mazungumzo. Kidokezo kinachotokana kinaweza kisha kupitishwa kwenye injini ya uelekezaji inayosimamiwa kando.

Chunguza onyesho la usimbaji na usimbuaji

Hazina inajumuisha kiolesura cha wavuti cha kutoa vidokezo, kukagua tokeni maalum, na kusimbua matokeo kamili ya modeli kuwa miundo ya Chat Completions, Responses, au Messages.

Kutoka kwenye mzizi wa hazina, endesha:

cargo run -p encoding-decoding-demo --locked

Kisha fungua http://127.0.0.1:7778 katika kivinjari.

Onyesho hili ni muhimu kwa kuangalia muundo wa vidokezo na kuelewa jinsi matokeo yaliyotengenezwa yanavyolingana na miundo ya majibu ya API inayotumika kabla ya kuunganisha maktaba kwenye seva.

Muhtasari wa vifurushi

  • deepseek-recipe: Ubadilishaji wa itifaki na uchanganuzi wa matokeo ya modeli.
  • deepseek-recipe-core: Aina za pamoja za mazungumzo, ujumbe, picha na zana.
  • deepseek-recipe-encoding: Uundaji wa vidokezo na usimbaji wa tokeni kwa DeepSeek V4 na V4.1.
  • deepseek-recipe-image: Upakuaji na uchakataji wa awali wa picha.
  • deepseek-recipe-python: Vifungo vya Python vinavyotolewa kupitia uingizaji wa deepseek_recipe.
  • encoding-decoding-demo: Ukaguzi wa vidokezo na matokeo kupitia kivinjari.
  • server-rs: Mfano wa API ya Axum unaotumia uigaji wa inferensi.
  • server-py: Mfano wa FastAPI unaotumia uigaji wa inferensi.

Vidokezo vya juu vya ujumuishaji

Tenganisha ushughulikiaji wa itifaki na inferensi

Tumia deepseek-recipe kwenye mipaka ya programu yako. Badilisha maombi yanayoingia kabla ya inferensi na uchanganue matokeo yaliyotengenezwa baadaye. Weka upakiaji wa modeli, uchakataji wa mafungu, upangaji na usimamizi wa maunzi ndani ya mfumo wako wa nyuma wa inferensi.

Chagua vidokezo au vitambulisho vya tokeni kwa makusudi

Unaweza kuunda mazungumzo kama vidokezo vya maandishi au kuyasimba kuwa vitambulisho vya tokeni. Tumia uundaji wa vidokezo wakati mfumo wako wa nyuma unapokea maandishi yaliyoumbizwa. Tumia usimbaji wa tokeni wakati mfumo wako wa nyuma unafanya kazi moja kwa moja na vitambulisho vya tokeniza. Mwongozo wa tokeniza wa hazina unaeleza jinsi ya kusimba mazungumzo na kusimbua vitambulisho vya tokeni kutoka mfumo wa nyuma.

Panga utiririshaji kama kipengele cha mwanzo hadi mwisho

Rust na Python zote zinaunga mkono kubadilisha matokeo ya modeli kuwa majibu yanayotiririshwa. Usafirishaji wako na mfumo wa nyuma wa inferensi lazima pia utiririshe data; maktaba haitoi tabaka hizo. Fuata mwongozo wa majibu yanayotiririshwa unapounganisha matokeo ya modeli yanayopatikana hatua kwa hatua na API inayomlenga mteja.

Shughulikia picha kabla ya inferensi

Maombi yanaweza kurejelea picha kupitia maudhui ya base64 au URL za nje. Kipengele maalum cha picha kinaunga mkono upakuaji na uchakataji wa awali wa DeepSeek V4.1 kwa kutumia OpenCV. Hakikisha vitegemezi vinavyohitajika vya picha vimesakinishwa unapounda kutoka kwenye msimbo chanzi.

Weka utekelezaji wa zana nje ya maktaba

Mradi unaweza kuwakilisha fasili za zana na kuchanganua miito ya zana kutoka kwa mteja, lakini hautekelezi zana hizo. Programu yako lazima ithibitishe kila mwito, iendeshe kazi au zana maalum inayofaa, na iongeze matokeo kwenye zamu inayofuata ya mazungumzo.

Heshimu mipaka ya sasa

Kabla ya kubuni API kulingana na mradi huu, zingatia vipengele ambavyo bado havijaungwa mkono:

  • Uwezekano wa tokeni kupitia logprobs au top_logprobs.
  • Maudhui ya hati, ingizo la sauti au video, na urejeshaji kwa file_id.
  • Zana zinazotekelezwa na seva kama vile web_search.
  • Vikwazo vya matokeo vya JSON Schema na semi za kawaida.
  • Utekelezaji wa mipangilio ya zana ya strict.
  • Chaguo nyingi za Chat Completions wakati n > 1.
  • Fasili maalum za zana za Responses isipokuwa apply_patch.
  • Uhifadhi wa mazungumzo ya Responses au urejeshaji wa muktadha kupitia previous_response_id.
  • Maudhui ya fikra yaliyosimbwa kupitia encrypted_content.

Hitimisho

deepseek-recipe hutoa vipengele vinavyoweza kutumiwa tena vya Rust na Python kwa kusawazisha itifaki kadhaa za API, kuunda ingizo za DeepSeek V4 na V4.1, na kutafsiri matokeo yaliyotengenezwa kuwa majibu yanayomlenga mteja. Anza na mfano wa msingi wa ubadilishaji wa ombi, kagua tabia kupitia onyesho, kisha unganisha mchakato wa ubadilishaji na miundombinu yako ya inferensi, usafirishaji na utekelezaji wa zana.

Msimbo wa mradi na nyaraka za umma zinapatikana chini ya Leseni ya MIT.