محادثات متقدمة
إدارة السياق والمحادثات المعقدة
10-15 دقيقة
محادثات متقدمة مع واجهة ChatGPT البرمجية
فهم نظام الرسائل
تستخدم واجهة ChatGPT البرمجية نظام رسائل لإدارة المحادثات. لكل رسالة دور ومحتوى:
const messages = [
{ role: 'system', content: 'Vous êtes un assistant spécialisé en programmation JavaScript.' },
{ role: 'user', content: 'Comment déclarer une variable en JavaScript ?' },
{ role: 'assistant', content: 'En JavaScript, vous pouvez déclarer une variable de trois façons :\n\n1. Avec `var` (déconseillé) :\n```javascript\nvar maVariable = 10;\n```\n\n2. Avec `let` (recommandé pour les variables qui changent) :\n```javascript\nlet maVariable = 10;\n```\n\n3. Avec `const` (pour les valeurs constantes) :\n```javascript\nconst maVariable = 10;\n```' },
{ role: 'user', content: 'Et comment déclarer une fonction ?' }
];
أدوار الرسائل
تتعرّف واجهة ChatGPT البرمجية على ثلاثة أدوار رئيسية:
- system: تعليمات عامة لتحديد سلوك المساعد
- user: الرسائل التي يرسلها المستخدم
- assistant: الردود التي يولّدها النموذج
إدارة السياق
للحفاظ على سياق المحادثة، يجب عليك الاحتفاظ بسجل الرسائل:
// Historique de conversation
let conversationHistory = [
{ role: 'system', content: 'Vous êtes un assistant spécialisé en programmation JavaScript.' }
];
// Fonction pour ajouter un message utilisateur
function addUserMessage(content) {
conversationHistory.push({ role: 'user', content });
}
// Fonction pour ajouter une réponse de l'assistant
function addAssistantMessage(content) {
conversationHistory.push({ role: 'assistant', content });
}
// Fonction pour appeler l'API avec l'historique
async function chatWithHistory(userMessage) {
// Ajouter le message de l'utilisateur à l'historique
addUserMessage(userMessage);
try {
const response = await fetch('https://api.openai.com/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`
},
body: JSON.stringify({
model: 'gpt-3.5-turbo',
messages: conversationHistory,
temperature: 0.7
})
});
const data = await response.json();
const assistantMessage = data.choices[0].message.content;
// Ajouter la réponse à l'historique
addAssistantMessage(assistantMessage);
return assistantMessage;
} catch (error) {
console.error('Erreur lors de l\'appel à l\'API:', error);
throw error;
}
}
التعليقات
التعليقات مدعومة عبر GitHub Discussions
سجّل الدخول باستخدام GitHub للمشاركة في النقاش