solvedesk-ai 0.1.0__tar.gz
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.
- solvedesk_ai-0.1.0/PKG-INFO +251 -0
- solvedesk_ai-0.1.0/README.md +238 -0
- solvedesk_ai-0.1.0/pyproject.toml +23 -0
- solvedesk_ai-0.1.0/setup.cfg +4 -0
- solvedesk_ai-0.1.0/setup.py +19 -0
- solvedesk_ai-0.1.0/solvedesk_ai.egg-info/PKG-INFO +251 -0
- solvedesk_ai-0.1.0/solvedesk_ai.egg-info/SOURCES.txt +11 -0
- solvedesk_ai-0.1.0/solvedesk_ai.egg-info/dependency_links.txt +1 -0
- solvedesk_ai-0.1.0/solvedesk_ai.egg-info/entry_points.txt +2 -0
- solvedesk_ai-0.1.0/solvedesk_ai.egg-info/requires.txt +5 -0
- solvedesk_ai-0.1.0/solvedesk_ai.egg-info/top_level.txt +1 -0
- solvedesk_ai-0.1.0/solvedesk_cmd/__init__.py +0 -0
- solvedesk_ai-0.1.0/solvedesk_cmd/cmd.py +22 -0
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: solvedesk-ai
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Local RAG framework for building intelligent knowledge bases
|
|
5
|
+
Author: Dominik Hofman
|
|
6
|
+
Requires-Python: >=3.10
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
Requires-Dist: typer
|
|
9
|
+
Requires-Dist: fastapi
|
|
10
|
+
Requires-Dist: chromadb
|
|
11
|
+
Requires-Dist: sentence-transformers
|
|
12
|
+
Requires-Dist: python-dotenv
|
|
13
|
+
|
|
14
|
+
# SolveDesk AI
|
|
15
|
+
|
|
16
|
+
Intelligent knowledge base powered by embeddings, vector search and Retrieval-Augmented Generation (RAG).
|
|
17
|
+
|
|
18
|
+
## Overview
|
|
19
|
+
|
|
20
|
+
SolveDesk AI is a lightweight open-source framework for building local intelligent knowledge bases. The project provides a command-line interface for creating vector databases, importing documents, generating embeddings, performing semantic search, and integrating with local Large Language Models (LLMs).
|
|
21
|
+
|
|
22
|
+
Inspired by frameworks such as Laravel and Django, SolveDesk AI simplifies the process of building Retrieval-Augmented Generation (RAG) systems by providing ready-to-use commands and a modular architecture.
|
|
23
|
+
|
|
24
|
+
The framework can be used both as a production-ready knowledge base solution and as an educational platform for learning modern AI technologies, vector databases, embeddings, and semantic retrieval.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Features
|
|
29
|
+
|
|
30
|
+
* Local knowledge base creation
|
|
31
|
+
* Semantic document search
|
|
32
|
+
* Retrieval-Augmented Generation (RAG)
|
|
33
|
+
* Vector database management
|
|
34
|
+
* Embedding generation
|
|
35
|
+
* Local LLM integration through Ollama
|
|
36
|
+
* Data synchronization from APIs
|
|
37
|
+
* CSV, JSON and XLSX import support
|
|
38
|
+
* Embedding quality analysis
|
|
39
|
+
* Document chunking
|
|
40
|
+
* FastAPI integration
|
|
41
|
+
* Command-line interface
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Architecture
|
|
46
|
+
|
|
47
|
+
```text
|
|
48
|
+
Documents / API
|
|
49
|
+
│
|
|
50
|
+
▼
|
|
51
|
+
Embedding Model
|
|
52
|
+
│
|
|
53
|
+
▼
|
|
54
|
+
ChromaDB
|
|
55
|
+
│
|
|
56
|
+
▼
|
|
57
|
+
Semantic Search
|
|
58
|
+
│
|
|
59
|
+
▼
|
|
60
|
+
LLM
|
|
61
|
+
Ollama
|
|
62
|
+
│
|
|
63
|
+
▼
|
|
64
|
+
Generated Response
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Technologies
|
|
70
|
+
|
|
71
|
+
| Technology | Purpose |
|
|
72
|
+
| ------------------------ | ---------------------- |
|
|
73
|
+
| Python 3.11 | Application runtime |
|
|
74
|
+
| FastAPI | REST API |
|
|
75
|
+
| ChromaDB | Vector database |
|
|
76
|
+
| silver-retriever-base-v1 | Embedding model |
|
|
77
|
+
| Sentence Transformers | Embedding generation |
|
|
78
|
+
| Ollama | Local LLM integration |
|
|
79
|
+
| Matplotlib | Data visualization |
|
|
80
|
+
| Typer | Command-line interface |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Installation
|
|
85
|
+
|
|
86
|
+
Clone repository:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
git clone https://github.com/your-repository/solvedesk-ai.git
|
|
90
|
+
cd solvedesk-ai
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Install dependencies:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
pip install -r requirements.txt
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Initialize project:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
solvedesk conf init
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Initialize vector database:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
solvedesk db init
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Configure local LLM:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
solvedesk llm init
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## CLI Commands
|
|
120
|
+
|
|
121
|
+
### Project Configuration
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
solvedesk conf init
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Initialize project environment.
|
|
128
|
+
|
|
129
|
+
### Database
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
solvedesk db init
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Create vector database and download embedding model.
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
solvedesk db list
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Display available collections.
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
solvedesk db details COLLECTION_NAME
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Display collection details.
|
|
148
|
+
|
|
149
|
+
### Data Synchronization
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
solvedesk sync api
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Import documents from external API.
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
solvedesk sync file
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Import documents from CSV, JSON or XLSX files.
|
|
162
|
+
|
|
163
|
+
### Data Analysis
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
solvedesk data revision
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Generate reports containing:
|
|
170
|
+
|
|
171
|
+
* cosine similarity statistics
|
|
172
|
+
* cluster distribution
|
|
173
|
+
* token statistics
|
|
174
|
+
* PCA visualization
|
|
175
|
+
|
|
176
|
+
### Chunking
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
solvedesk data chunk
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Split large documents into smaller chunks suitable for RAG systems.
|
|
183
|
+
|
|
184
|
+
### LLM Configuration
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
solvedesk llm init
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Configure Ollama host and model.
|
|
191
|
+
|
|
192
|
+
### Run Application
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
solvedesk run:app
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Start FastAPI server.
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## Supported Data Structures
|
|
203
|
+
|
|
204
|
+
### FAQ
|
|
205
|
+
|
|
206
|
+
```json
|
|
207
|
+
{
|
|
208
|
+
"question": "How to reset password?",
|
|
209
|
+
"answer": "Use reset password page."
|
|
210
|
+
}
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Knowledge Base
|
|
214
|
+
|
|
215
|
+
```json
|
|
216
|
+
{
|
|
217
|
+
"name": "VPN Connection",
|
|
218
|
+
"question": "Cannot connect to VPN",
|
|
219
|
+
"answer": "Verify credentials and VPN client configuration."
|
|
220
|
+
}
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Example Workflow
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
solvedesk conf init
|
|
229
|
+
solvedesk db init
|
|
230
|
+
solvedesk sync file
|
|
231
|
+
solvedesk data revision
|
|
232
|
+
solvedesk llm init
|
|
233
|
+
solvedesk run:app
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Project Goals
|
|
239
|
+
|
|
240
|
+
* Build local intelligent knowledge bases
|
|
241
|
+
* Simplify RAG implementation
|
|
242
|
+
* Support AI experimentation
|
|
243
|
+
* Provide full control over data
|
|
244
|
+
* Enable local LLM deployments
|
|
245
|
+
* Offer educational value for learning AI technologies
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## License
|
|
250
|
+
|
|
251
|
+
MIT License
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
# SolveDesk AI
|
|
2
|
+
|
|
3
|
+
Intelligent knowledge base powered by embeddings, vector search and Retrieval-Augmented Generation (RAG).
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
SolveDesk AI is a lightweight open-source framework for building local intelligent knowledge bases. The project provides a command-line interface for creating vector databases, importing documents, generating embeddings, performing semantic search, and integrating with local Large Language Models (LLMs).
|
|
8
|
+
|
|
9
|
+
Inspired by frameworks such as Laravel and Django, SolveDesk AI simplifies the process of building Retrieval-Augmented Generation (RAG) systems by providing ready-to-use commands and a modular architecture.
|
|
10
|
+
|
|
11
|
+
The framework can be used both as a production-ready knowledge base solution and as an educational platform for learning modern AI technologies, vector databases, embeddings, and semantic retrieval.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Features
|
|
16
|
+
|
|
17
|
+
* Local knowledge base creation
|
|
18
|
+
* Semantic document search
|
|
19
|
+
* Retrieval-Augmented Generation (RAG)
|
|
20
|
+
* Vector database management
|
|
21
|
+
* Embedding generation
|
|
22
|
+
* Local LLM integration through Ollama
|
|
23
|
+
* Data synchronization from APIs
|
|
24
|
+
* CSV, JSON and XLSX import support
|
|
25
|
+
* Embedding quality analysis
|
|
26
|
+
* Document chunking
|
|
27
|
+
* FastAPI integration
|
|
28
|
+
* Command-line interface
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Architecture
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
Documents / API
|
|
36
|
+
│
|
|
37
|
+
▼
|
|
38
|
+
Embedding Model
|
|
39
|
+
│
|
|
40
|
+
▼
|
|
41
|
+
ChromaDB
|
|
42
|
+
│
|
|
43
|
+
▼
|
|
44
|
+
Semantic Search
|
|
45
|
+
│
|
|
46
|
+
▼
|
|
47
|
+
LLM
|
|
48
|
+
Ollama
|
|
49
|
+
│
|
|
50
|
+
▼
|
|
51
|
+
Generated Response
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Technologies
|
|
57
|
+
|
|
58
|
+
| Technology | Purpose |
|
|
59
|
+
| ------------------------ | ---------------------- |
|
|
60
|
+
| Python 3.11 | Application runtime |
|
|
61
|
+
| FastAPI | REST API |
|
|
62
|
+
| ChromaDB | Vector database |
|
|
63
|
+
| silver-retriever-base-v1 | Embedding model |
|
|
64
|
+
| Sentence Transformers | Embedding generation |
|
|
65
|
+
| Ollama | Local LLM integration |
|
|
66
|
+
| Matplotlib | Data visualization |
|
|
67
|
+
| Typer | Command-line interface |
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Installation
|
|
72
|
+
|
|
73
|
+
Clone repository:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
git clone https://github.com/your-repository/solvedesk-ai.git
|
|
77
|
+
cd solvedesk-ai
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Install dependencies:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
pip install -r requirements.txt
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Initialize project:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
solvedesk conf init
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Initialize vector database:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
solvedesk db init
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Configure local LLM:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
solvedesk llm init
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## CLI Commands
|
|
107
|
+
|
|
108
|
+
### Project Configuration
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
solvedesk conf init
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Initialize project environment.
|
|
115
|
+
|
|
116
|
+
### Database
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
solvedesk db init
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Create vector database and download embedding model.
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
solvedesk db list
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Display available collections.
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
solvedesk db details COLLECTION_NAME
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Display collection details.
|
|
135
|
+
|
|
136
|
+
### Data Synchronization
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
solvedesk sync api
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
Import documents from external API.
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
solvedesk sync file
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Import documents from CSV, JSON or XLSX files.
|
|
149
|
+
|
|
150
|
+
### Data Analysis
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
solvedesk data revision
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Generate reports containing:
|
|
157
|
+
|
|
158
|
+
* cosine similarity statistics
|
|
159
|
+
* cluster distribution
|
|
160
|
+
* token statistics
|
|
161
|
+
* PCA visualization
|
|
162
|
+
|
|
163
|
+
### Chunking
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
solvedesk data chunk
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Split large documents into smaller chunks suitable for RAG systems.
|
|
170
|
+
|
|
171
|
+
### LLM Configuration
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
solvedesk llm init
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Configure Ollama host and model.
|
|
178
|
+
|
|
179
|
+
### Run Application
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
solvedesk run:app
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
Start FastAPI server.
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Supported Data Structures
|
|
190
|
+
|
|
191
|
+
### FAQ
|
|
192
|
+
|
|
193
|
+
```json
|
|
194
|
+
{
|
|
195
|
+
"question": "How to reset password?",
|
|
196
|
+
"answer": "Use reset password page."
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Knowledge Base
|
|
201
|
+
|
|
202
|
+
```json
|
|
203
|
+
{
|
|
204
|
+
"name": "VPN Connection",
|
|
205
|
+
"question": "Cannot connect to VPN",
|
|
206
|
+
"answer": "Verify credentials and VPN client configuration."
|
|
207
|
+
}
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Example Workflow
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
solvedesk conf init
|
|
216
|
+
solvedesk db init
|
|
217
|
+
solvedesk sync file
|
|
218
|
+
solvedesk data revision
|
|
219
|
+
solvedesk llm init
|
|
220
|
+
solvedesk run:app
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Project Goals
|
|
226
|
+
|
|
227
|
+
* Build local intelligent knowledge bases
|
|
228
|
+
* Simplify RAG implementation
|
|
229
|
+
* Support AI experimentation
|
|
230
|
+
* Provide full control over data
|
|
231
|
+
* Enable local LLM deployments
|
|
232
|
+
* Offer educational value for learning AI technologies
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## License
|
|
237
|
+
|
|
238
|
+
MIT License
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=69", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "solvedesk-ai"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Local RAG framework for building intelligent knowledge bases"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
authors = [
|
|
12
|
+
{ name = "Dominik Hofman" }
|
|
13
|
+
]
|
|
14
|
+
dependencies = [
|
|
15
|
+
"typer",
|
|
16
|
+
"fastapi",
|
|
17
|
+
"chromadb",
|
|
18
|
+
"sentence-transformers",
|
|
19
|
+
"python-dotenv"
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
[project.scripts]
|
|
23
|
+
solvedesk = "solvedesk.cli:app"
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from setuptools import setup, find_packages
|
|
2
|
+
|
|
3
|
+
setup(
|
|
4
|
+
name="solvedesk",
|
|
5
|
+
version="1.0.0",
|
|
6
|
+
|
|
7
|
+
packages=find_packages(),
|
|
8
|
+
|
|
9
|
+
install_requires=[
|
|
10
|
+
"typer",
|
|
11
|
+
"rich"
|
|
12
|
+
],
|
|
13
|
+
|
|
14
|
+
entry_points={
|
|
15
|
+
"console_scripts": [
|
|
16
|
+
"solvedesk=solvedesk_cmd.cmd:app"
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
|
+
)
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: solvedesk-ai
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Local RAG framework for building intelligent knowledge bases
|
|
5
|
+
Author: Dominik Hofman
|
|
6
|
+
Requires-Python: >=3.10
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
Requires-Dist: typer
|
|
9
|
+
Requires-Dist: fastapi
|
|
10
|
+
Requires-Dist: chromadb
|
|
11
|
+
Requires-Dist: sentence-transformers
|
|
12
|
+
Requires-Dist: python-dotenv
|
|
13
|
+
|
|
14
|
+
# SolveDesk AI
|
|
15
|
+
|
|
16
|
+
Intelligent knowledge base powered by embeddings, vector search and Retrieval-Augmented Generation (RAG).
|
|
17
|
+
|
|
18
|
+
## Overview
|
|
19
|
+
|
|
20
|
+
SolveDesk AI is a lightweight open-source framework for building local intelligent knowledge bases. The project provides a command-line interface for creating vector databases, importing documents, generating embeddings, performing semantic search, and integrating with local Large Language Models (LLMs).
|
|
21
|
+
|
|
22
|
+
Inspired by frameworks such as Laravel and Django, SolveDesk AI simplifies the process of building Retrieval-Augmented Generation (RAG) systems by providing ready-to-use commands and a modular architecture.
|
|
23
|
+
|
|
24
|
+
The framework can be used both as a production-ready knowledge base solution and as an educational platform for learning modern AI technologies, vector databases, embeddings, and semantic retrieval.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Features
|
|
29
|
+
|
|
30
|
+
* Local knowledge base creation
|
|
31
|
+
* Semantic document search
|
|
32
|
+
* Retrieval-Augmented Generation (RAG)
|
|
33
|
+
* Vector database management
|
|
34
|
+
* Embedding generation
|
|
35
|
+
* Local LLM integration through Ollama
|
|
36
|
+
* Data synchronization from APIs
|
|
37
|
+
* CSV, JSON and XLSX import support
|
|
38
|
+
* Embedding quality analysis
|
|
39
|
+
* Document chunking
|
|
40
|
+
* FastAPI integration
|
|
41
|
+
* Command-line interface
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Architecture
|
|
46
|
+
|
|
47
|
+
```text
|
|
48
|
+
Documents / API
|
|
49
|
+
│
|
|
50
|
+
▼
|
|
51
|
+
Embedding Model
|
|
52
|
+
│
|
|
53
|
+
▼
|
|
54
|
+
ChromaDB
|
|
55
|
+
│
|
|
56
|
+
▼
|
|
57
|
+
Semantic Search
|
|
58
|
+
│
|
|
59
|
+
▼
|
|
60
|
+
LLM
|
|
61
|
+
Ollama
|
|
62
|
+
│
|
|
63
|
+
▼
|
|
64
|
+
Generated Response
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Technologies
|
|
70
|
+
|
|
71
|
+
| Technology | Purpose |
|
|
72
|
+
| ------------------------ | ---------------------- |
|
|
73
|
+
| Python 3.11 | Application runtime |
|
|
74
|
+
| FastAPI | REST API |
|
|
75
|
+
| ChromaDB | Vector database |
|
|
76
|
+
| silver-retriever-base-v1 | Embedding model |
|
|
77
|
+
| Sentence Transformers | Embedding generation |
|
|
78
|
+
| Ollama | Local LLM integration |
|
|
79
|
+
| Matplotlib | Data visualization |
|
|
80
|
+
| Typer | Command-line interface |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Installation
|
|
85
|
+
|
|
86
|
+
Clone repository:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
git clone https://github.com/your-repository/solvedesk-ai.git
|
|
90
|
+
cd solvedesk-ai
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Install dependencies:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
pip install -r requirements.txt
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Initialize project:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
solvedesk conf init
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Initialize vector database:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
solvedesk db init
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Configure local LLM:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
solvedesk llm init
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## CLI Commands
|
|
120
|
+
|
|
121
|
+
### Project Configuration
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
solvedesk conf init
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Initialize project environment.
|
|
128
|
+
|
|
129
|
+
### Database
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
solvedesk db init
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Create vector database and download embedding model.
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
solvedesk db list
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Display available collections.
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
solvedesk db details COLLECTION_NAME
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Display collection details.
|
|
148
|
+
|
|
149
|
+
### Data Synchronization
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
solvedesk sync api
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Import documents from external API.
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
solvedesk sync file
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Import documents from CSV, JSON or XLSX files.
|
|
162
|
+
|
|
163
|
+
### Data Analysis
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
solvedesk data revision
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Generate reports containing:
|
|
170
|
+
|
|
171
|
+
* cosine similarity statistics
|
|
172
|
+
* cluster distribution
|
|
173
|
+
* token statistics
|
|
174
|
+
* PCA visualization
|
|
175
|
+
|
|
176
|
+
### Chunking
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
solvedesk data chunk
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Split large documents into smaller chunks suitable for RAG systems.
|
|
183
|
+
|
|
184
|
+
### LLM Configuration
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
solvedesk llm init
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Configure Ollama host and model.
|
|
191
|
+
|
|
192
|
+
### Run Application
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
solvedesk run:app
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Start FastAPI server.
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## Supported Data Structures
|
|
203
|
+
|
|
204
|
+
### FAQ
|
|
205
|
+
|
|
206
|
+
```json
|
|
207
|
+
{
|
|
208
|
+
"question": "How to reset password?",
|
|
209
|
+
"answer": "Use reset password page."
|
|
210
|
+
}
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Knowledge Base
|
|
214
|
+
|
|
215
|
+
```json
|
|
216
|
+
{
|
|
217
|
+
"name": "VPN Connection",
|
|
218
|
+
"question": "Cannot connect to VPN",
|
|
219
|
+
"answer": "Verify credentials and VPN client configuration."
|
|
220
|
+
}
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Example Workflow
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
solvedesk conf init
|
|
229
|
+
solvedesk db init
|
|
230
|
+
solvedesk sync file
|
|
231
|
+
solvedesk data revision
|
|
232
|
+
solvedesk llm init
|
|
233
|
+
solvedesk run:app
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Project Goals
|
|
239
|
+
|
|
240
|
+
* Build local intelligent knowledge bases
|
|
241
|
+
* Simplify RAG implementation
|
|
242
|
+
* Support AI experimentation
|
|
243
|
+
* Provide full control over data
|
|
244
|
+
* Enable local LLM deployments
|
|
245
|
+
* Offer educational value for learning AI technologies
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## License
|
|
250
|
+
|
|
251
|
+
MIT License
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
pyproject.toml
|
|
3
|
+
setup.py
|
|
4
|
+
solvedesk_ai.egg-info/PKG-INFO
|
|
5
|
+
solvedesk_ai.egg-info/SOURCES.txt
|
|
6
|
+
solvedesk_ai.egg-info/dependency_links.txt
|
|
7
|
+
solvedesk_ai.egg-info/entry_points.txt
|
|
8
|
+
solvedesk_ai.egg-info/requires.txt
|
|
9
|
+
solvedesk_ai.egg-info/top_level.txt
|
|
10
|
+
solvedesk_cmd/__init__.py
|
|
11
|
+
solvedesk_cmd/cmd.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
solvedesk_cmd
|
|
File without changes
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import typer
|
|
2
|
+
|
|
3
|
+
from solvedesk_cmd.commands.conf import app as conf_cmd
|
|
4
|
+
from solvedesk_cmd.commands.db import app as db_cmd
|
|
5
|
+
from solvedesk_cmd.commands.sync import app as sync_cmd
|
|
6
|
+
from solvedesk_cmd.commands.llm import app as llm_cmd
|
|
7
|
+
from solvedesk_cmd.commands.data import app as data_cmd
|
|
8
|
+
from solvedesk_cmd.commands.security import app as secure_cmd
|
|
9
|
+
from solvedesk_cmd.commands.main import app as main_cmd
|
|
10
|
+
|
|
11
|
+
app = typer.Typer(name="solvedesk")
|
|
12
|
+
|
|
13
|
+
app.add_typer(conf_cmd, name="conf", help="SolveDesk configuration")
|
|
14
|
+
app.add_typer(db_cmd, name="db", help="Vector Database configuration")
|
|
15
|
+
app.add_typer(sync_cmd, name="sync", help="Data Loader Configuration")
|
|
16
|
+
app.add_typer(llm_cmd, name="llm", help="LLM Configuration")
|
|
17
|
+
app.add_typer(data_cmd, name="data", help="Data & Embeddings analyse")
|
|
18
|
+
app.add_typer(secure_cmd, name="security", help="Configure Security by JWT")
|
|
19
|
+
app.add_typer(main_cmd, name="main", help="SolveDesk API Launcher")
|
|
20
|
+
|
|
21
|
+
if __name__ == "__main__":
|
|
22
|
+
app()
|