Skip to content

Commit 2b568f5

Browse files
committed
feat: added qdrant vector database and services
1 parent ec358f4 commit 2b568f5

File tree

26 files changed

+251
-75
lines changed

26 files changed

+251
-75
lines changed

.env-example

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,6 @@ DATABASE_URL_DOCKER=postgresql://genaiapp:password@postgres:5432/app_db?schema=p
1717

1818
JWT_SECRET=
1919
JWT_EXPIRATION=1h
20+
21+
QDRANT_URL=qdrant://qdrant:6333
22+
QDRANT_COLLECTION=genai-api-docs

.vscode/settings.json

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
{
22
"cSpell.words": [
3-
"dataprovider",
4-
"dataproviders",
5-
"gemini",
6-
"nodenext",
7-
"openapi",
8-
"predev",
9-
"prestart",
10-
"usecases"
11-
]
3+
"dataprovider",
4+
"dataproviders",
5+
"gemini",
6+
"nodenext",
7+
"openapi",
8+
"predev",
9+
"prestart",
10+
"qdrant",
11+
"usecases"
12+
]
1213
}

Makefile

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
run:
2+
docker compose up -d
3+
4+
build:
5+
docker compose up --build -d
6+
7+
stop-all:
8+
docker compose stop $(docker ps -q)
9+
10+
clean:
11+
rm -rf node_modules/ uploads/*.pdf

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,12 @@ cp .env.example .env
8080
> From the app's root directory, run the following command to build and running docker containers:
8181
8282
```shell
83-
docker compose up --build
83+
make build
84+
# or
85+
make run
8486
```
8587

86-
> The application will be available at `http://localhost:3000`.<br>
88+
> The application will be available at `http://localhost:3000`.<br>For more commands see `Makefile`.
8789
8890
## Documentation
8991

docker-compose.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,16 @@ services:
4242
volumes:
4343
- 'genai_app_redis_data:/bitnami/redis/data'
4444

45+
qdrant:
46+
container_name: genai_app_vector_db
47+
image: qdrant/qdrant
48+
ports:
49+
- '6333:6333'
50+
volumes:
51+
- 'genai_app_qdrant_data:/qdrant/storage'
52+
4553
volumes:
4654
pnpm_store:
4755
genai_app_redis_data:
4856
genai_app_postgres_data:
57+
genai_app_qdrant_data:

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,10 @@
2323
"@langchain/community": "^0.3.1",
2424
"@langchain/core": "^0.3.3",
2525
"@langchain/google-genai": "^0.1.0",
26+
"@langchain/qdrant": "^0.1.1",
2627
"@langchain/redis": "^0.1.0",
2728
"@prisma/client": "5.20.0",
29+
"@qdrant/js-client-rest": "^1.12.0",
2830
"@types/redis": "^4.0.11",
2931
"express": "^4.21.0",
3032
"jsonwebtoken": "^9.0.2",

pnpm-lock.yaml

Lines changed: 61 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/di/index.ts

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,26 @@
11
import { PrismaClient } from '@prisma/client'
22

3-
import { DocumentsService, LLMService } from '@/modules/genai/adapters'
4-
53
import {
6-
SearchInDocumentUseCase,
7-
TranslateTextUseCase,
8-
} from '@/modules/genai/core'
4+
GenAIController,
5+
SearchInDocumentUseCase,
6+
TranslateTextUseCase,
7+
} from '@/modules/genai'
98

10-
import { AuthController } from '@/modules/auth/application/controllers/auth.controller'
11-
import { GenAIController } from '@/modules/genai/application/controllers/gen-ai.controller'
12-
import { ResourcesController } from '@/modules/resources/application/controllers/resources.controller'
13-
import { UserDataProvider } from '@/modules/users/adapters/dataproviders/user.dataprovider'
14-
import { UsersController } from '@/modules/users/application/controllers/users.controller'
9+
import { AuthController } from '@/modules/auth'
10+
import { DocumentsService, VectorDataBaseProvider } from '@/modules/core'
11+
import { ResourcesController, StoreDocumentsUseCase } from '@/modules/resources'
12+
import { UserDataProvider, UsersController } from '@/modules/users'
1513

1614
// Common
17-
const llmService = new LLMService()
1815
const prismaClient = new PrismaClient()
16+
const vectorDataBaseProvider = new VectorDataBaseProvider()
1917

2018
// Gen AI Module
2119
const genAIController = new GenAIController()
22-
const documentService = new DocumentsService(llmService)
23-
const searchInDocumentUseCase = new SearchInDocumentUseCase(
24-
llmService,
25-
documentService,
26-
)
20+
const documentService = new DocumentsService()
21+
const searchInDocumentUseCase = new SearchInDocumentUseCase(documentService)
2722

28-
const translateUseCase = new TranslateTextUseCase(llmService)
23+
const translateUseCase = new TranslateTextUseCase()
2924

3025
// User Module
3126
const userDatProvider = new UserDataProvider()
@@ -36,16 +31,21 @@ const authController = new AuthController(userDatProvider)
3631

3732
// Resources Module
3833
const resourcesController = new ResourcesController()
34+
const storeDocumentsUseCase = new StoreDocumentsUseCase(
35+
documentService,
36+
vectorDataBaseProvider,
37+
)
3938

4039
export {
4140
authController,
4241
documentService,
4342
genAIController,
44-
llmService,
4543
prismaClient,
4644
resourcesController,
4745
searchInDocumentUseCase,
46+
storeDocumentsUseCase,
4847
translateUseCase,
4948
userDatProvider,
5049
usersController,
50+
vectorDataBaseProvider,
5151
}

src/modules/auth/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './application/controllers/auth.controller'

0 commit comments

Comments
 (0)