ide-assi 0.61.0 → 0.63.0

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.
@@ -193287,6 +193287,7 @@ class IdeAi
193287
193287
  {
193288
193288
  #API_URL = "http://localhost:8091";
193289
193289
  #SCHEMA = "booxtory_250131";
193290
+ #model;
193290
193291
 
193291
193292
  constructor() {
193292
193293
  }
@@ -193430,32 +193431,21 @@ class IdeAi
193430
193431
 
193431
193432
  generateSourceClient = async (userPrompt) => {
193432
193433
 
193433
- const a = await IdeAiPrompt.getDevelopActionClassification(userPrompt);
193434
+ const prompt = await IdeAiPrompt.getDevelopActionClassification(userPrompt);
193434
193435
 
193435
- console.log(a);
193436
+ console.log(prompt);
193436
193437
 
193437
- return;
193438
+ const systemMessage = "You are a helpful assistant.";
193438
193439
 
193439
- /**
193440
- let filterString;
193441
- switch (this.settings.server) {
193442
- case "openai":
193443
- filterString = this.#extractJsonSnippet(response.content.trim());
193444
- break;
193445
- case "gemini":
193446
- filterString = this.#extractJsonSnippet(response.content.trim());
193447
- break;
193448
- case "ollama":
193449
- filterString = this.#extractJsonSnippet(response);
193450
- break;
193451
- default:
193452
- break;
193453
- }
193454
193440
 
193455
- //console.log(filterString);
193456
193441
 
193457
- return JSON.parse(filterString);
193458
- */
193442
+ const response = await this.#model.invoke([
193443
+ new SystemMessage(systemMessage),
193444
+ new HumanMessage(prompt),
193445
+ ]);
193446
+
193447
+ console.log(response);
193448
+
193459
193449
  }
193460
193450
  }
193461
193451
 
@@ -193283,6 +193283,7 @@ class IdeAi
193283
193283
  {
193284
193284
  #API_URL = "http://localhost:8091";
193285
193285
  #SCHEMA = "booxtory_250131";
193286
+ #model;
193286
193287
 
193287
193288
  constructor() {
193288
193289
  }
@@ -193426,32 +193427,21 @@ class IdeAi
193426
193427
 
193427
193428
  generateSourceClient = async (userPrompt) => {
193428
193429
 
193429
- const a = await IdeAiPrompt.getDevelopActionClassification(userPrompt);
193430
+ const prompt = await IdeAiPrompt.getDevelopActionClassification(userPrompt);
193430
193431
 
193431
- console.log(a);
193432
+ console.log(prompt);
193432
193433
 
193433
- return;
193434
+ const systemMessage = "You are a helpful assistant.";
193434
193435
 
193435
- /**
193436
- let filterString;
193437
- switch (this.settings.server) {
193438
- case "openai":
193439
- filterString = this.#extractJsonSnippet(response.content.trim());
193440
- break;
193441
- case "gemini":
193442
- filterString = this.#extractJsonSnippet(response.content.trim());
193443
- break;
193444
- case "ollama":
193445
- filterString = this.#extractJsonSnippet(response);
193446
- break;
193447
- default:
193448
- break;
193449
- }
193450
193436
 
193451
- //console.log(filterString);
193452
193437
 
193453
- return JSON.parse(filterString);
193454
- */
193438
+ const response = await this.#model.invoke([
193439
+ new SystemMessage(systemMessage),
193440
+ new HumanMessage(prompt),
193441
+ ]);
193442
+
193443
+ console.log(response);
193444
+
193455
193445
  }
193456
193446
  }
193457
193447
 
@@ -1,10 +1,12 @@
1
1
  import ninegrid from "ninegrid2";
2
2
  import {IdeAiPrompt} from "./ideAiPrompt.js";
3
+ import { HumanMessage, SystemMessage } from '@langchain/core/messages';
3
4
 
4
5
  export class IdeAi
5
6
  {
6
7
  #API_URL = "http://localhost:8091";
7
8
  #SCHEMA = "booxtory_250131";
9
+ #model;
8
10
 
9
11
  constructor() {
10
12
  }
@@ -148,43 +150,12 @@ export class IdeAi
148
150
 
149
151
  generateSourceClient = async (userPrompt) => {
150
152
 
151
- const a = await IdeAiPrompt.getDevelopActionClassification(userPrompt);
152
-
153
- console.log(a);
154
-
155
- return;
153
+ const prompt = await IdeAiPrompt.getDevelopActionClassification(userPrompt);
156
154
 
155
+ console.log(prompt);
157
156
 
158
157
  const systemMessage = "You are a helpful assistant.";
159
- const prompt = `
160
- 자연어 쿼리를 Qdrant 필터 JSON 객체로 변환하는 AI 비서입니다.
161
-
162
- Qdrant 컬렉션에서 사용 가능한 메타데이터 필드와 유형은 다음과 같습니다.:
163
- ${this.#getColumnInfoString()}
164
-
165
- 필터 생성 규칙:
166
- 1. 위에 제공된 필드만 사용하십시오. 새로운 필드를 만들지 마십시오.
167
- 2. 조건이 명확하게 지정되지 않았거나 모호한 경우 필터에 포함하지 마십시오.
168
- 3. AND 조건에는 'must', OR 조건에는 'should', NOT 조건에는 'must_not'을 사용하십시오.
169
- 4. 문자열 일치에는 'match.text'를 사용하십시오.
170
- 5. 날짜 조건은 'YYYY-MM-DD' 형식으로 변형해서 사용하십시요. 오늘날짜는 ${this.#getToday()} 입니다.
171
- 6. 숫자 범위에는 'range.gte', 'range.lte', 'range.gt', 'range.lt'를 사용하십시오.
172
- 7. 특정 값을 포함하는 배열에는 'contains', 'match.any' 또는 'match.all'을 사용하십시오.
173
- 8. 출력은 Qdrant 필터를 나타내는 유효한 JSON 객체여야 합니다.
174
- 9. 적용 가능한 필터가 없는 경우 빈 JSON 객체인 {}를 반환합니다.
175
-
176
- 예:
177
- - "500달러 미만의 전자제품 찾기" -> {"must": [{"key": "category", "match": {"text": "electronics"}}, {"key": "price", "range": {"lt": 500}}]}
178
- - "John Doe 또는 Jane Smith의 책 보기" -> {"should": [{"key": "author", "match": {"text": "John Doe"}}, {"key": "author", "match": {"text": "Jane Smith"}}]}
179
- - "재고 있는 품목(의류 제외)" -> {"must": [{"key": "in_stock", "match": {"text": true}}], "must_not": [{"key": "category", "match": {"text": "clothing"}}]}
180
- - "다음이 포함된 제품 'new_arrival' 태그" -> {"must": [{"key": "tags", "match": {"text": "new_arrival"}}]}
181
- - "2020년 이후 출판된 도서" -> {"must": [{"key": "published_year", "range": {"gt": 2020}}]}
182
-
183
- 이제 다음 사용자 쿼리를 변환해 보겠습니다.
184
- 사용자 쿼리: "${userInput}"
185
-
186
- Qdrant 필터 JSON:
187
- `;
158
+
188
159
 
189
160
 
190
161
  const response = await this.#model.invoke([
@@ -194,26 +165,6 @@ export class IdeAi
194
165
 
195
166
  console.log(response);
196
167
 
197
- /**
198
- let filterString;
199
- switch (this.settings.server) {
200
- case "openai":
201
- filterString = this.#extractJsonSnippet(response.content.trim());
202
- break;
203
- case "gemini":
204
- filterString = this.#extractJsonSnippet(response.content.trim());
205
- break;
206
- case "ollama":
207
- filterString = this.#extractJsonSnippet(response);
208
- break;
209
- default:
210
- break;
211
- }
212
-
213
- //console.log(filterString);
214
-
215
- return JSON.parse(filterString);
216
- */
217
168
  }
218
169
  }
219
170
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ide-assi",
3
3
  "type": "module",
4
- "version": "0.61.0",
4
+ "version": "0.63.0",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
@@ -1,10 +1,12 @@
1
1
  import ninegrid from "ninegrid2";
2
2
  import {IdeAiPrompt} from "./ideAiPrompt.js";
3
+ import { HumanMessage, SystemMessage } from '@langchain/core/messages';
3
4
 
4
5
  export class IdeAi
5
6
  {
6
7
  #API_URL = "http://localhost:8091";
7
8
  #SCHEMA = "booxtory_250131";
9
+ #model;
8
10
 
9
11
  constructor() {
10
12
  }
@@ -148,43 +150,12 @@ export class IdeAi
148
150
 
149
151
  generateSourceClient = async (userPrompt) => {
150
152
 
151
- const a = await IdeAiPrompt.getDevelopActionClassification(userPrompt);
152
-
153
- console.log(a);
154
-
155
- return;
153
+ const prompt = await IdeAiPrompt.getDevelopActionClassification(userPrompt);
156
154
 
155
+ console.log(prompt);
157
156
 
158
157
  const systemMessage = "You are a helpful assistant.";
159
- const prompt = `
160
- 자연어 쿼리를 Qdrant 필터 JSON 객체로 변환하는 AI 비서입니다.
161
-
162
- Qdrant 컬렉션에서 사용 가능한 메타데이터 필드와 유형은 다음과 같습니다.:
163
- ${this.#getColumnInfoString()}
164
-
165
- 필터 생성 규칙:
166
- 1. 위에 제공된 필드만 사용하십시오. 새로운 필드를 만들지 마십시오.
167
- 2. 조건이 명확하게 지정되지 않았거나 모호한 경우 필터에 포함하지 마십시오.
168
- 3. AND 조건에는 'must', OR 조건에는 'should', NOT 조건에는 'must_not'을 사용하십시오.
169
- 4. 문자열 일치에는 'match.text'를 사용하십시오.
170
- 5. 날짜 조건은 'YYYY-MM-DD' 형식으로 변형해서 사용하십시요. 오늘날짜는 ${this.#getToday()} 입니다.
171
- 6. 숫자 범위에는 'range.gte', 'range.lte', 'range.gt', 'range.lt'를 사용하십시오.
172
- 7. 특정 값을 포함하는 배열에는 'contains', 'match.any' 또는 'match.all'을 사용하십시오.
173
- 8. 출력은 Qdrant 필터를 나타내는 유효한 JSON 객체여야 합니다.
174
- 9. 적용 가능한 필터가 없는 경우 빈 JSON 객체인 {}를 반환합니다.
175
-
176
- 예:
177
- - "500달러 미만의 전자제품 찾기" -> {"must": [{"key": "category", "match": {"text": "electronics"}}, {"key": "price", "range": {"lt": 500}}]}
178
- - "John Doe 또는 Jane Smith의 책 보기" -> {"should": [{"key": "author", "match": {"text": "John Doe"}}, {"key": "author", "match": {"text": "Jane Smith"}}]}
179
- - "재고 있는 품목(의류 제외)" -> {"must": [{"key": "in_stock", "match": {"text": true}}], "must_not": [{"key": "category", "match": {"text": "clothing"}}]}
180
- - "다음이 포함된 제품 'new_arrival' 태그" -> {"must": [{"key": "tags", "match": {"text": "new_arrival"}}]}
181
- - "2020년 이후 출판된 도서" -> {"must": [{"key": "published_year", "range": {"gt": 2020}}]}
182
-
183
- 이제 다음 사용자 쿼리를 변환해 보겠습니다.
184
- 사용자 쿼리: "${userInput}"
185
-
186
- Qdrant 필터 JSON:
187
- `;
158
+
188
159
 
189
160
 
190
161
  const response = await this.#model.invoke([
@@ -194,26 +165,6 @@ export class IdeAi
194
165
 
195
166
  console.log(response);
196
167
 
197
- /**
198
- let filterString;
199
- switch (this.settings.server) {
200
- case "openai":
201
- filterString = this.#extractJsonSnippet(response.content.trim());
202
- break;
203
- case "gemini":
204
- filterString = this.#extractJsonSnippet(response.content.trim());
205
- break;
206
- case "ollama":
207
- filterString = this.#extractJsonSnippet(response);
208
- break;
209
- default:
210
- break;
211
- }
212
-
213
- //console.log(filterString);
214
-
215
- return JSON.parse(filterString);
216
- */
217
168
  }
218
169
  }
219
170