@nine-lab/nine-connector 0.1.12 β 0.1.14
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.
- package/README.kr.md +71 -0
- package/README.md +28 -25
- package/package.json +1 -1
- package/prompts/query-generator.md +2 -1
- package/src/database/core/PoolManager.js +2 -1
- package/src/index.js +4 -1
package/README.kr.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
cat <<EOF > README.kr.md
|
|
2
|
+
# @nine-lab/nine-connector π
|
|
3
|
+
|
|
4
|
+
[νκ΅μ΄ λ¬Έμ(Korean)](./README.kr.md) | [English Document](./README.md)
|
|
5
|
+
|
|
6
|
+
μμ°μ΄ κΈ°λ° SQL μμ± μμ§(NineQuery)κ³Ό λ°μ΄ν°λ² μ΄μ€ μ¬μ΄λ₯Ό μ°κ²°νλ **AI μ μ© DB 컀λ₯ν° μλΉμ€**μ
λλ€.
|
|
7
|
+
|
|
8
|
+
λ°μ΄ν°λ² μ΄μ€μ ꡬ쑰(Schema)λ₯Ό λΆμνμ¬ AIκ° μ΅μ μ 쿼리λ₯Ό μμ±ν μ μλλ‘ λΈλ¦Ώμ§ μν μ μννλ©°, 보μμ΄ κ²μ¦λ νκ²½μμ λ°μ΄ν°λ₯Ό μμ νκ² λ°νν©λλ€.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## π μ£Όμ κΈ°λ₯
|
|
13
|
+
|
|
14
|
+
* **μλ μ΄κΈ°ν**: \`nine-connector init\` λͺ
λ ΉμΌλ‘ \`.env\` μ€μ κ³Ό AI ν둬ννΈ ν
νλ¦Ώμ μ¦μ ꡬμΆν©λλ€.
|
|
15
|
+
* **Multi-DB μ§μ**: MySQL, PostgreSQL, MariaDB, Oracle λ± λ€μν μν°νλΌμ΄μ¦ DB νκ²½μ λμν©λλ€.
|
|
16
|
+
* **λΉμ¦λμ€ λ‘μ§ μ΅μ ν**: ν둬ννΈ νμΌ μμ μ ν΅ν΄ νΉμ ν
μ΄λΈ μ‘°ν κΈμ§, νν°λ§ 쑰건 κ°μ λ± κ³ κ°μ¬λ³ λ§μΆ€ κ·μΉμ μ μ©ν μ μμ΅λλ€.
|
|
17
|
+
* **보μ κ°λ**: λ΄λΆμ μΌλ‘ μ€μ§ \`SELECT\` μΏΌλ¦¬λ§ νμ©νμ¬ λ°μ΄ν° λ³μ‘° λ° μ μΆμ μμ² μ°¨λ¨ν©λλ€.
|
|
18
|
+
* **μ΄μ μμ μ±**: BigInt μ§λ ¬ν λ° DBλ³ κ²°κ³Ό ν¬λ§· μ κ·νλ₯Ό ν΅ν΄ λ°μ΄ν° μΌκ΄μ±μ 보μ₯ν©λλ€.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## π μ€μΉ λ° μ¬μ© λ°©λ²
|
|
23
|
+
|
|
24
|
+
### 1. ν¨ν€μ§ μ€μΉ
|
|
25
|
+
\`\`\`bash
|
|
26
|
+
npm install -g @nine-lab/nine-connector
|
|
27
|
+
\`\`\`
|
|
28
|
+
|
|
29
|
+
### 2. νλ‘μ νΈ μ΄κΈ°ν (μ΅μ΄ 1ν)
|
|
30
|
+
μλ² μ€ν μ DB μ μ μ 보 λ° ν둬ννΈ νκ²½ ꡬμ±μ μν΄ μ€νν©λλ€.
|
|
31
|
+
\`\`\`bash
|
|
32
|
+
nine-connector init
|
|
33
|
+
\`\`\`
|
|
34
|
+
|
|
35
|
+
### 3. μλ² μ€ν λ° κ΄λ¦¬ (PM2 κΆμ₯)
|
|
36
|
+
μλ²μ μμ μ μΈ κΈ°λκ³Ό λ‘κ·Έ κ΄λ¦¬λ₯Ό μν΄ νλ‘μΈμ€ μ΄λ¦μ ν¨ν€μ§λͺ
κ³Ό λμΌν **nine-connector**λ‘ κ΄λ¦¬νλ κ²μ κΆμ₯ν©λλ€.
|
|
37
|
+
|
|
38
|
+
* **μλ² μμ**:
|
|
39
|
+
\`\`\`bash
|
|
40
|
+
pm2 start nine-connector --name "nine-connector"
|
|
41
|
+
\`\`\`
|
|
42
|
+
* **μν νμΈ**:
|
|
43
|
+
\`\`\`bash
|
|
44
|
+
pm2 status
|
|
45
|
+
\`\`\`
|
|
46
|
+
* **λ‘κ·Έ νμΈ**:
|
|
47
|
+
\`\`\`bash
|
|
48
|
+
pm2 logs nine-connector
|
|
49
|
+
\`\`\`
|
|
50
|
+
* **μλ² μ€μ§/μ¬μμ**:
|
|
51
|
+
\`\`\`bash
|
|
52
|
+
pm2 stop nine-connector
|
|
53
|
+
pm2 restart nine-connector
|
|
54
|
+
\`\`\`
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## π νλ‘μ νΈ κ΅¬μ‘° λ° μ»€μ€ν°λ§μ΄μ§
|
|
59
|
+
|
|
60
|
+
κΈ°λ³Έμ μΌλ‘ \`nine-query\` μ»΄ν¬λνΈμ μ°λλμ΄ λμνλ©°, μλ νμΌλ€μ ν΅ν΄ μΈλΆ λμμ μ μ΄ν μ μμ΅λλ€.
|
|
61
|
+
|
|
62
|
+
* **.env**: DB μ μ μ 보 λ° AI λͺ¨λΈ(Gemini) μ€μ κ°
|
|
63
|
+
* **prompts/table-filter.md**: μ§λ¬Έμ μ ν©ν ν
μ΄λΈμ μ°Ύμλ΄λ AIμ νλ¨ λ‘μ§
|
|
64
|
+
* **prompts/query-generator.md**: μ€μ SQLμ μμ±νλ AIμ νλ₯΄μλ λ° κ·μΉ
|
|
65
|
+
* **π‘ Tip**: μ΄ νμΌμ \`[κ³ κ°μ¬ μ μ© λΉμ¦λμ€ λ‘μ§ λ° λ³΄μ κ·μΉ]\` μΉμ
μ "νΉμ λ―Όκ° ν
μ΄λΈ μ‘°ν κΈμ§"λ "κΈ°λ³Έ μ λ ¬/νν°λ§ κΈ°μ€"μ λͺ
μνμ¬ AIμ λ΅λ³μ ν΅μ ν μ μμ΅λλ€.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## π λΌμ΄μ μ€
|
|
70
|
+
MIT Β© **nine-lab**
|
|
71
|
+
EOF
|
package/README.md
CHANGED
|
@@ -1,51 +1,54 @@
|
|
|
1
1
|
cat <<EOF > README.md
|
|
2
2
|
# @nine-lab/nine-connector π
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
[νκ΅μ΄ λ¬Έμ(Korean)](./README.kr.md) | [English Document](./README.md)
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
**NineConnector** is an AI-specialized database connector service that bridges the gap between natural language SQL generation engines (**NineQuery**) and your database.
|
|
7
|
+
|
|
8
|
+
It analyzes database schemas to provide AI models with the necessary metadata for optimal query generation and ensures secure data retrieval within a verified environment.
|
|
7
9
|
|
|
8
10
|
---
|
|
9
11
|
|
|
10
|
-
## π
|
|
12
|
+
## π Key Features
|
|
11
13
|
|
|
12
|
-
*
|
|
13
|
-
* **Multi-DB
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* **Auto-Initialization**: Instantly set up your environment with \`.env\` configurations and AI prompt templates using the \`nine-connector init\` command.
|
|
15
|
+
* **Multi-DB Support**: Out-of-the-box compatibility with enterprise database environments including **MySQL, PostgreSQL, MariaDB, and Oracle**.
|
|
16
|
+
* **Business Logic Optimization**: Fine-tune AI behavior by customizing prompt files to enforce rules such as table access restrictions or mandatory filtering logic.
|
|
17
|
+
* **Security Guardrail**: Strictly restricts execution to \`SELECT\` queries to prevent unauthorized data modification or leakage.
|
|
18
|
+
* **Operational Stability**: Ensures data consistency through **BigInt serialization** and standardized result formatting across different DB dialects.
|
|
17
19
|
|
|
18
20
|
---
|
|
19
21
|
|
|
20
|
-
## π
|
|
22
|
+
## π Installation & Quick Start
|
|
21
23
|
|
|
22
|
-
### 1.
|
|
24
|
+
### 1. Install Package
|
|
25
|
+
Install the package globally to access the CLI commands from anywhere.
|
|
23
26
|
\`\`\`bash
|
|
24
27
|
npm install -g @nine-lab/nine-connector
|
|
25
28
|
\`\`\`
|
|
26
29
|
|
|
27
|
-
### 2.
|
|
28
|
-
|
|
30
|
+
### 2. Initialize Project (First-time setup)
|
|
31
|
+
Run the initialization command to configure DB connection settings and generate prompt templates.
|
|
29
32
|
\`\`\`bash
|
|
30
33
|
nine-connector init
|
|
31
34
|
\`\`\`
|
|
32
35
|
|
|
33
|
-
### 3.
|
|
34
|
-
|
|
36
|
+
### 3. Server Execution & Management (PM2 Recommended)
|
|
37
|
+
For production environments, we highly recommend using **PM2** to ensure high availability and efficient log management.
|
|
35
38
|
|
|
36
|
-
*
|
|
39
|
+
* **Start Server**:
|
|
37
40
|
\`\`\`bash
|
|
38
41
|
pm2 start nine-connector --name "nine-connector"
|
|
39
42
|
\`\`\`
|
|
40
|
-
*
|
|
43
|
+
* **Check Status**:
|
|
41
44
|
\`\`\`bash
|
|
42
45
|
pm2 status
|
|
43
46
|
\`\`\`
|
|
44
|
-
*
|
|
47
|
+
* **View Logs**:
|
|
45
48
|
\`\`\`bash
|
|
46
49
|
pm2 logs nine-connector
|
|
47
50
|
\`\`\`
|
|
48
|
-
*
|
|
51
|
+
* **Stop / Restart**:
|
|
49
52
|
\`\`\`bash
|
|
50
53
|
pm2 stop nine-connector
|
|
51
54
|
pm2 restart nine-connector
|
|
@@ -53,17 +56,17 @@ nine-connector init
|
|
|
53
56
|
|
|
54
57
|
---
|
|
55
58
|
|
|
56
|
-
## π
|
|
59
|
+
## π Project Structure & Customization
|
|
57
60
|
|
|
58
|
-
|
|
61
|
+
Designed to work seamlessly with the \`nine-query\` component, you can control the AI's behavior via the following files:
|
|
59
62
|
|
|
60
|
-
* **.env**:
|
|
61
|
-
* **prompts/table-filter.md**:
|
|
62
|
-
* **prompts/query-generator.md**:
|
|
63
|
-
* **π‘ Tip**:
|
|
63
|
+
* **.env**: Database credentials and AI model (e.g., Gemini) configurations.
|
|
64
|
+
* **prompts/table-filter.md**: AI logic for identifying relevant tables based on user intent.
|
|
65
|
+
* **prompts/query-generator.md**: Persona and rules for the SQL generation AI.
|
|
66
|
+
* **π‘ Tip**: Use the \`[Custom Business Logic & Security Rules]\` section in this file to enforce specific constraints, such as "Do not access sensitive user tables" or "Always apply a default sort order."
|
|
64
67
|
|
|
65
68
|
---
|
|
66
69
|
|
|
67
|
-
## π
|
|
70
|
+
## π License
|
|
68
71
|
MIT Β© **nine-lab**
|
|
69
72
|
EOF
|
package/package.json
CHANGED
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
3. 쿼리문 μμ λ§ν¬λ€μ΄ μ½λ λΈλ‘(```sql)μ ν¬ν¨νμ§ λ§μΈμ.
|
|
17
17
|
|
|
18
18
|
[κ³ κ°μ¬ μ μ© λΉμ¦λμ€ λ‘μ§ λ° λ³΄μ κ·μΉ]
|
|
19
|
-
-
|
|
19
|
+
- μ¬μ©μκ° νΉμ λ¨μ΄(μ: μ§λͺ
, μνΈλͺ
, κΈ°μ λͺ
)λ₯Ό μΈκΈνλ©° μ‘°νλ₯Ό μμ²ν κ²½μ°,
|
|
20
|
+
κ³ μ κ° λΉκ΅(=) λμ λ°λμ 'LIKE %κ²μμ΄%' ν¨ν΄μ μ¬μ©νμΈμ.
|
|
20
21
|
-
|
|
21
22
|
(μ¬κΈ°μ "νΉμ ν
μ΄λΈ μ‘°ν κΈμ§"λ "κΈ°λ³Έ μ λ ¬ κΈ°μ€" λ± μ»€μ€ν
κ·μΉμ μμ±νμΈμ.)
|
|
22
23
|
|
package/src/index.js
CHANGED
|
@@ -34,7 +34,10 @@ async function bootstrap() {
|
|
|
34
34
|
port: Number(process.env.DB_PORT),
|
|
35
35
|
user: process.env.DB_USER,
|
|
36
36
|
password: process.env.DB_PASS,
|
|
37
|
-
database: process.env.DB_NAME
|
|
37
|
+
database: process.env.DB_NAME,
|
|
38
|
+
ssl: {
|
|
39
|
+
rejectUnauthorized: false
|
|
40
|
+
}
|
|
38
41
|
});
|
|
39
42
|
|
|
40
43
|
// BigInt μ§λ ¬ν μ€μ
|