
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
- Pokea ombi katika muundo wa Messages, Chat Completions, au Responses.
- Badilisha ombi kuwa muundo wa pamoja wa Conversation wa maktaba.
- Toa mazungumzo kama kidokezo cha DeepSeek V4 au V4.1, au yasimbie kuwa vitambulisho vya tokeni.
- Tuma kidokezo au vitambulisho vya tokeni kwenye mfumo wa nje wa uelekezaji.
- Changanua matokeo yaliyotengenezwa, ikijumuisha maudhui ya kufikiri yanayotumika, miito ya zana, vitu vya JSON, na mfuatano wa kusitisha.
- 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
ChatCompletionRequesthusoma data inayoingia ya Chat Completions.request.convert(ConversionOptions())husawazisha ombi kuwa Conversation.DeepseekV41Encoding()huchagua kanuni za usimbaji za DeepSeek V4.1.render_conversationhuunda uwakilishi ulio tayari kwa modeli.rendered.prompthuwa 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 wadeepseek_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
logprobsautop_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.
