@cobrowser/chatgpt 0.7.6 → 0.7.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -130,18 +130,28 @@ class CopilotService extends BaseService_1.default {
|
|
|
130
130
|
var _a;
|
|
131
131
|
return __awaiter(this, void 0, void 0, function* () {
|
|
132
132
|
const openai = new openai_1.default({ apiKey: this.openaiApiKey });
|
|
133
|
+
let run;
|
|
133
134
|
if (!this.threadId) {
|
|
134
135
|
const thread = yield openai.beta.threads.create();
|
|
135
|
-
yield openai.beta.threads.messages.create(thread.id, { role: "user", content: message });
|
|
136
136
|
this.threadId = thread.id;
|
|
137
137
|
}
|
|
138
|
-
|
|
138
|
+
const lastThreadMessasges = yield openai.beta.threads.messages.list(this.threadId, { order: "desc", limit: 2 });
|
|
139
|
+
const isRepeatedMessage = lastThreadMessasges.data.find(msg => msg.content[0].type === 'text' && msg.content[0].text.value === message);
|
|
140
|
+
// making sure that we're not saving repeated messages
|
|
141
|
+
if (isRepeatedMessage) {
|
|
142
|
+
const runs = yield openai.beta.threads.runs.list(this.threadId, { order: "desc", limit: 1 });
|
|
143
|
+
run = runs.data[0];
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
yield openai.beta.threads.messages.create(this.threadId, { role: "user", content: message });
|
|
147
|
+
run = yield openai.beta.threads.runs.create(this.threadId, { assistant_id: (_a = this.assistantId) !== null && _a !== void 0 ? _a : '' });
|
|
148
|
+
}
|
|
139
149
|
while (['queued', 'in_progress', 'cancelling'].includes(run.status)) {
|
|
140
150
|
yield new Promise(resolve => setTimeout(resolve, 500));
|
|
141
151
|
run = yield openai.beta.threads.runs.retrieve(run.thread_id, run.id);
|
|
142
152
|
}
|
|
143
153
|
if (run.status === 'completed') {
|
|
144
|
-
const { data } = yield openai.beta.threads.messages.list(run.thread_id);
|
|
154
|
+
const { data } = yield openai.beta.threads.messages.list(run.thread_id, { order: 'desc', limit: 1 });
|
|
145
155
|
const messages = data.flatMap((message) => message === null || message === void 0 ? void 0 : message.content.map((content) => ((content.type === 'text' && message.role === 'assistant') ? content.text : '')));
|
|
146
156
|
const assistantMessages = messages.filter(message => typeof message === 'object' && 'value' in message && typeof message.value === 'string');
|
|
147
157
|
if (assistantMessages.length) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cobrowser/chatgpt",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.7",
|
|
4
4
|
"description": "chatgpt services to connect our projects with chatgpt api",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"chatgpt",
|
|
@@ -39,5 +39,5 @@
|
|
|
39
39
|
"bugs": {
|
|
40
40
|
"url": "https://bitbucket.org/cobrowser/cb_utils/issues"
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "2f235befbe0be80629be10c8a34d197ca189f512"
|
|
43
43
|
}
|