@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
- let run = yield openai.beta.threads.runs.create(this.threadId, { assistant_id: (_a = this.assistantId) !== null && _a !== void 0 ? _a : '' });
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.6",
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": "13f2b86caf4381d983749289840a7a53fddfc066"
42
+ "gitHead": "2f235befbe0be80629be10c8a34d197ca189f512"
43
43
  }