Een codeer-chatbot bouwen met DeepSeek R1

Werken met DeepSeek in Python

James Chapman

Curriculum Manager, DataCamp

Huidige aanpak

Alle input en output wordt opgeslagen om met het volgende bericht mee te sturen.

Werken met DeepSeek in Python

Problemen met reasoning

Reasoning-outputs bestaan uit gedachten en een eindantwoord.

Werken met DeepSeek in Python

Problemen met reasoning

Best practices schrijven voor dat reasoning-inputs kort moeten zijn.

Werken met DeepSeek in Python

Problemen met reasoning

Gedachten opslaan in de gespreksgeschiedenis verhoogt kosten en runtime, en verslechtert vaak de prestaties.

Werken met DeepSeek in Python

De reasoning-aanpak

De gedachten uit de eerste modeloutput wegsnijden.

Werken met DeepSeek in Python

De reasoning-aanpak

De gedachten uit de tweede modeloutput wegsnijden.

Werken met DeepSeek in Python

Gedachten trimmen

Denk-tokens extraheren

import re

match = re.search(r'<think>(.*?)<\/think>', response_content, re.DOTALL)
think_content = match.group(1).strip()
print(think_content)

Denk-tokens verwijderen

final_response = re.sub(r'<think>[\s\S]*?<\/think>\s*', '', response_content, re.DOTALL)
print(final_response.strip())
Werken met DeepSeek in Python

Een reasoning-chatbot coderen

  • "system"-berichten niet gebruiken met reasoning-modellen
messages = []
user_msgs = [code_to_debug, follow_up]
for q in user_qs:
    user_dict = {"role": "user", "content": q}
    messages.append(user_dict)

    response = client.chat.completions.create(model="deepseek-ai/DeepSeek-R1", messages=messages)


final_response = re.sub(r'<think>[\s\S]*?<\/think>\s*', '', response.choices[0].message.content, re.DOTALL) assistant_dict = {"role": "assistant", "content": final_response.strip()}
messages.append(assistant_dict)
Werken met DeepSeek in Python

Laten we oefenen!

Werken met DeepSeek in Python

Preparing Video For Download...