Skip to content

Commit 2d88ba6

Browse files
committed
feat: add systemprompt, closes #8
1 parent 463d78d commit 2d88ba6

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

library.js

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ const defaults = {
2626
model: 'gpt-3.5-turbo',
2727
minimumReputation: 0,
2828
allowedGroups: '[]',
29+
systemPrompt: 'You are a helpful assistant',
2930
};
3031

3132

@@ -227,15 +228,25 @@ async function getMessageIds(roomId, uid, start, stop) {
227228
);
228229
}
229230

230-
async function chatComplete(message) {
231+
async function chatComplete(messages) {
231232
if (!openai) {
232233
throw new Error('API not created!');
233234
}
234-
const isConversation = Array.isArray(message);
235-
const { model } = await meta.settings.get('openai');
235+
const isConversation = Array.isArray(messages);
236+
const { model, systemPrompt } = await getSettings();
237+
const conversation = [];
238+
if (systemPrompt) {
239+
conversation.push({ role: 'system', content: systemPrompt });
240+
}
241+
if (isConversation) {
242+
conversation.push(...messages);
243+
} else {
244+
conversation.push({ role: 'user', content: messages });
245+
}
246+
236247
const chatCompletion = await openai.chat.completions.create({
237248
model: model || 'gpt-3.5-turbo',
238-
messages: isConversation ? message : [{ role: 'user', content: message }],
249+
messages: conversation,
239250
});
240251

241252
return chatCompletion.choices[0]?.message?.content;

templates/admin/plugins/openai.tpl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,12 @@
4040
<option value="gpt-4">gpt-4</option>
4141
</select>
4242
</div>
43+
<div class="">
44+
<label class="form-label" for="systemPrompt">System Prompt</label>
45+
<textarea class="form-control" id="systemPrompt" name="systemPrompt" title="System prompt" placeholder="You are a helpful assistant"></textarea>
46+
</div>
4347
</div>
48+
4449
<div class="">
4550
<h5 class="fw-bold tracking-tight settings-header">Restrictions</h5>
4651

0 commit comments

Comments
 (0)