memento-mcp-server 0.1.0 → 1.7.1

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.
Files changed (560) hide show
  1. package/INSTALL.en.md +303 -303
  2. package/INSTALL.md +303 -303
  3. package/README.en.md +331 -330
  4. package/README.md +432 -427
  5. package/dist/algorithms/hybrid-search-engine.d.ts +114 -44
  6. package/dist/algorithms/hybrid-search-engine.d.ts.map +1 -1
  7. package/dist/algorithms/hybrid-search-engine.js +261 -235
  8. package/dist/algorithms/hybrid-search-engine.js.map +1 -1
  9. package/dist/algorithms/search-engine.d.ts +2 -14
  10. package/dist/algorithms/search-engine.d.ts.map +1 -1
  11. package/dist/algorithms/search-engine.js +43 -35
  12. package/dist/algorithms/search-engine.js.map +1 -1
  13. package/dist/algorithms/vector-search-engine-migration.d.ts +67 -0
  14. package/dist/algorithms/vector-search-engine-migration.d.ts.map +1 -0
  15. package/dist/algorithms/vector-search-engine-migration.js +196 -0
  16. package/dist/algorithms/vector-search-engine-migration.js.map +1 -0
  17. package/dist/algorithms/vector-search-engine-refactored.d.ts +56 -0
  18. package/dist/algorithms/vector-search-engine-refactored.d.ts.map +1 -0
  19. package/dist/algorithms/vector-search-engine-refactored.js +101 -0
  20. package/dist/algorithms/vector-search-engine-refactored.js.map +1 -0
  21. package/dist/algorithms/vector-search-engine.d.ts +9 -2
  22. package/dist/algorithms/vector-search-engine.d.ts.map +1 -1
  23. package/dist/algorithms/vector-search-engine.js +245 -121
  24. package/dist/algorithms/vector-search-engine.js.map +1 -1
  25. package/dist/client/index.d.ts.map +1 -1
  26. package/dist/client/index.js +34 -11
  27. package/dist/client/index.js.map +1 -1
  28. package/dist/config/environment.d.ts +26 -0
  29. package/dist/config/environment.d.ts.map +1 -0
  30. package/dist/config/environment.js +103 -0
  31. package/dist/config/environment.js.map +1 -0
  32. package/dist/config/index.d.ts.map +1 -1
  33. package/dist/config/index.js +29 -50
  34. package/dist/config/index.js.map +1 -1
  35. package/dist/config/vector-search.config.d.ts +25 -0
  36. package/dist/config/vector-search.config.d.ts.map +1 -0
  37. package/dist/config/vector-search.config.js +40 -0
  38. package/dist/config/vector-search.config.js.map +1 -0
  39. package/dist/database/init.d.ts.map +1 -1
  40. package/dist/database/init.js +154 -17
  41. package/dist/database/init.js.map +1 -1
  42. package/dist/database/migrate.d.ts +2 -1
  43. package/dist/database/migrate.d.ts.map +1 -1
  44. package/dist/database/migrate.js +191 -18
  45. package/dist/database/migrate.js.map +1 -1
  46. package/dist/database/schema.sql +234 -159
  47. package/dist/factories/hybrid-search.factory.d.ts +20 -0
  48. package/dist/factories/hybrid-search.factory.d.ts.map +1 -0
  49. package/dist/factories/hybrid-search.factory.js +57 -0
  50. package/dist/factories/hybrid-search.factory.js.map +1 -0
  51. package/dist/factories/spaced-repetition.factory.d.ts +48 -0
  52. package/dist/factories/spaced-repetition.factory.d.ts.map +1 -0
  53. package/dist/factories/spaced-repetition.factory.js +187 -0
  54. package/dist/factories/spaced-repetition.factory.js.map +1 -0
  55. package/dist/factories/vector-search.factory.d.ts +25 -0
  56. package/dist/factories/vector-search.factory.d.ts.map +1 -0
  57. package/dist/factories/vector-search.factory.js +47 -0
  58. package/dist/factories/vector-search.factory.js.map +1 -0
  59. package/dist/interfaces/database.interface.d.ts +36 -0
  60. package/dist/interfaces/database.interface.d.ts.map +1 -0
  61. package/dist/interfaces/database.interface.js +6 -0
  62. package/dist/interfaces/database.interface.js.map +1 -0
  63. package/dist/interfaces/spaced-repetition.interface.d.ts +63 -0
  64. package/dist/interfaces/spaced-repetition.interface.d.ts.map +1 -0
  65. package/dist/interfaces/spaced-repetition.interface.js +6 -0
  66. package/dist/interfaces/spaced-repetition.interface.js.map +1 -0
  67. package/dist/repositories/vector-performance.repository.d.ts +25 -0
  68. package/dist/repositories/vector-performance.repository.d.ts.map +1 -0
  69. package/dist/repositories/vector-performance.repository.js +134 -0
  70. package/dist/repositories/vector-performance.repository.js.map +1 -0
  71. package/dist/repositories/vector-search.repository.d.ts +43 -0
  72. package/dist/repositories/vector-search.repository.d.ts.map +1 -0
  73. package/dist/repositories/vector-search.repository.js +377 -0
  74. package/dist/repositories/vector-search.repository.js.map +1 -0
  75. package/dist/server/http-server.d.ts.map +1 -1
  76. package/dist/server/http-server.js +25 -24
  77. package/dist/server/http-server.js.map +1 -1
  78. package/dist/server/index.d.ts +1 -0
  79. package/dist/server/index.d.ts.map +1 -1
  80. package/dist/server/index.js +3 -1
  81. package/dist/server/index.js.map +1 -1
  82. package/dist/services/alert-notification-service.d.ts +16 -0
  83. package/dist/services/alert-notification-service.d.ts.map +1 -0
  84. package/dist/services/alert-notification-service.js +44 -0
  85. package/dist/services/alert-notification-service.js.map +1 -0
  86. package/dist/services/async-optimizer.d.ts +62 -8
  87. package/dist/services/async-optimizer.d.ts.map +1 -1
  88. package/dist/services/async-optimizer.js +137 -8
  89. package/dist/services/async-optimizer.js.map +1 -1
  90. package/dist/services/batch-scheduler.d.ts +6 -0
  91. package/dist/services/batch-scheduler.d.ts.map +1 -1
  92. package/dist/services/batch-scheduler.js +59 -19
  93. package/dist/services/batch-scheduler.js.map +1 -1
  94. package/dist/services/cache-service.d.ts +32 -0
  95. package/dist/services/cache-service.d.ts.map +1 -1
  96. package/dist/services/cache-service.js +81 -6
  97. package/dist/services/cache-service.js.map +1 -1
  98. package/dist/services/database-optimizer.js +63 -63
  99. package/dist/services/database-optimizer.js.map +1 -1
  100. package/dist/services/embedding-migration-service.d.ts +24 -0
  101. package/dist/services/embedding-migration-service.d.ts.map +1 -0
  102. package/dist/services/embedding-migration-service.js +360 -0
  103. package/dist/services/embedding-migration-service.js.map +1 -0
  104. package/dist/services/embedding-provider-factory.d.ts +12 -5
  105. package/dist/services/embedding-provider-factory.d.ts.map +1 -1
  106. package/dist/services/embedding-provider-factory.js +107 -26
  107. package/dist/services/embedding-provider-factory.js.map +1 -1
  108. package/dist/services/forgetting-policy-service.js +17 -17
  109. package/dist/services/gemini-embedding-service.d.ts +1 -1
  110. package/dist/services/gemini-embedding-service.d.ts.map +1 -1
  111. package/dist/services/gemini-embedding-service.js +25 -18
  112. package/dist/services/gemini-embedding-service.js.map +1 -1
  113. package/dist/services/memory-embedding-service.d.ts +8 -0
  114. package/dist/services/memory-embedding-service.d.ts.map +1 -1
  115. package/dist/services/memory-embedding-service.js +180 -71
  116. package/dist/services/memory-embedding-service.js.map +1 -1
  117. package/dist/services/migration-history-service.d.ts +14 -0
  118. package/dist/services/migration-history-service.d.ts.map +1 -0
  119. package/dist/services/migration-history-service.js +270 -0
  120. package/dist/services/migration-history-service.js.map +1 -0
  121. package/dist/services/migration-monitor-service.d.ts +24 -0
  122. package/dist/services/migration-monitor-service.d.ts.map +1 -0
  123. package/dist/services/migration-monitor-service.js +93 -0
  124. package/dist/services/migration-monitor-service.js.map +1 -0
  125. package/dist/services/model-availability-service.d.ts +22 -0
  126. package/dist/services/model-availability-service.d.ts.map +1 -0
  127. package/dist/services/model-availability-service.js +140 -0
  128. package/dist/services/model-availability-service.js.map +1 -0
  129. package/dist/services/openai-embedding-service.d.ts +36 -0
  130. package/dist/services/openai-embedding-service.d.ts.map +1 -0
  131. package/dist/services/openai-embedding-service.js +192 -0
  132. package/dist/services/openai-embedding-service.js.map +1 -0
  133. package/dist/services/performance-monitor.d.ts +154 -10
  134. package/dist/services/performance-monitor.d.ts.map +1 -1
  135. package/dist/services/performance-monitor.js +446 -60
  136. package/dist/services/performance-monitor.js.map +1 -1
  137. package/dist/services/spaced-repetition/interval-calculation.service.d.ts +38 -0
  138. package/dist/services/spaced-repetition/interval-calculation.service.d.ts.map +1 -0
  139. package/dist/services/spaced-repetition/interval-calculation.service.js +105 -0
  140. package/dist/services/spaced-repetition/interval-calculation.service.js.map +1 -0
  141. package/dist/services/spaced-repetition/optimal-interval.service.d.ts +56 -0
  142. package/dist/services/spaced-repetition/optimal-interval.service.d.ts.map +1 -0
  143. package/dist/services/spaced-repetition/optimal-interval.service.js +163 -0
  144. package/dist/services/spaced-repetition/optimal-interval.service.js.map +1 -0
  145. package/dist/services/spaced-repetition/performance-analysis.service.d.ts +48 -0
  146. package/dist/services/spaced-repetition/performance-analysis.service.d.ts.map +1 -0
  147. package/dist/services/spaced-repetition/performance-analysis.service.js +174 -0
  148. package/dist/services/spaced-repetition/performance-analysis.service.js.map +1 -0
  149. package/dist/services/spaced-repetition/priority-calculation.service.d.ts +53 -0
  150. package/dist/services/spaced-repetition/priority-calculation.service.d.ts.map +1 -0
  151. package/dist/services/spaced-repetition/priority-calculation.service.js +161 -0
  152. package/dist/services/spaced-repetition/priority-calculation.service.js.map +1 -0
  153. package/dist/services/spaced-repetition/recall-probability.service.d.ts +36 -0
  154. package/dist/services/spaced-repetition/recall-probability.service.d.ts.map +1 -0
  155. package/dist/services/spaced-repetition/recall-probability.service.js +88 -0
  156. package/dist/services/spaced-repetition/recall-probability.service.js.map +1 -0
  157. package/dist/services/spaced-repetition/review-scheduling.service.d.ts +43 -0
  158. package/dist/services/spaced-repetition/review-scheduling.service.d.ts.map +1 -0
  159. package/dist/services/spaced-repetition/review-scheduling.service.js +130 -0
  160. package/dist/services/spaced-repetition/review-scheduling.service.js.map +1 -0
  161. package/dist/services/spaced-repetition/spaced-repetition-container.d.ts +69 -0
  162. package/dist/services/spaced-repetition/spaced-repetition-container.d.ts.map +1 -0
  163. package/dist/services/spaced-repetition/spaced-repetition-container.js +136 -0
  164. package/dist/services/spaced-repetition/spaced-repetition-container.js.map +1 -0
  165. package/dist/services/unified-embedding-service.d.ts +3 -0
  166. package/dist/services/unified-embedding-service.d.ts.map +1 -1
  167. package/dist/services/unified-embedding-service.js +58 -62
  168. package/dist/services/unified-embedding-service.js.map +1 -1
  169. package/dist/services/vector-compatibility-service.d.ts +68 -0
  170. package/dist/services/vector-compatibility-service.d.ts.map +1 -0
  171. package/dist/services/vector-compatibility-service.js +373 -0
  172. package/dist/services/vector-compatibility-service.js.map +1 -0
  173. package/dist/services/vector-search/vector-index-manager.d.ts +27 -0
  174. package/dist/services/vector-search/vector-index-manager.d.ts.map +1 -0
  175. package/dist/services/vector-search/vector-index-manager.js +66 -0
  176. package/dist/services/vector-search/vector-index-manager.js.map +1 -0
  177. package/dist/services/vector-search/vector-performance-tester.d.ts +30 -0
  178. package/dist/services/vector-search/vector-performance-tester.d.ts.map +1 -0
  179. package/dist/services/vector-search/vector-performance-tester.js +87 -0
  180. package/dist/services/vector-search/vector-performance-tester.js.map +1 -0
  181. package/dist/services/vector-search/vector-search-container.d.ts +41 -0
  182. package/dist/services/vector-search/vector-search-container.d.ts.map +1 -0
  183. package/dist/services/vector-search/vector-search-container.js +74 -0
  184. package/dist/services/vector-search/vector-search-container.js.map +1 -0
  185. package/dist/services/vector-search/vector-search-facade.d.ts +63 -0
  186. package/dist/services/vector-search/vector-search-facade.d.ts.map +1 -0
  187. package/dist/services/vector-search/vector-search-facade.js +91 -0
  188. package/dist/services/vector-search/vector-search-facade.js.map +1 -0
  189. package/dist/services/vector-search/vector-search-result-normalizer.d.ts +6 -0
  190. package/dist/services/vector-search/vector-search-result-normalizer.d.ts.map +1 -0
  191. package/dist/services/vector-search/vector-search-result-normalizer.js +65 -0
  192. package/dist/services/vector-search/vector-search-result-normalizer.js.map +1 -0
  193. package/dist/services/vector-search/vector-search.service.d.ts +33 -0
  194. package/dist/services/vector-search/vector-search.service.d.ts.map +1 -0
  195. package/dist/services/vector-search/vector-search.service.js +149 -0
  196. package/dist/services/vector-search/vector-search.service.js.map +1 -0
  197. package/dist/tools/forget-tool.js +14 -14
  198. package/dist/tools/pin-tool.js +14 -14
  199. package/dist/tools/unpin-tool.js +21 -21
  200. package/dist/types/alerts.types.d.ts +26 -0
  201. package/dist/types/alerts.types.d.ts.map +1 -0
  202. package/dist/types/alerts.types.js +2 -0
  203. package/dist/types/alerts.types.js.map +1 -0
  204. package/dist/types/embedding-provider-monitoring.types.d.ts +24 -0
  205. package/dist/types/embedding-provider-monitoring.types.d.ts.map +1 -0
  206. package/dist/types/embedding-provider-monitoring.types.js +2 -0
  207. package/dist/types/embedding-provider-monitoring.types.js.map +1 -0
  208. package/dist/types/embedding.types.d.ts +36 -1
  209. package/dist/types/embedding.types.d.ts.map +1 -1
  210. package/dist/types/migration.types.d.ts +131 -0
  211. package/dist/types/migration.types.d.ts.map +1 -0
  212. package/dist/types/migration.types.js +6 -0
  213. package/dist/types/migration.types.js.map +1 -0
  214. package/dist/types/spaced-repetition.types.d.ts +61 -0
  215. package/dist/types/spaced-repetition.types.d.ts.map +1 -0
  216. package/dist/types/spaced-repetition.types.js +6 -0
  217. package/dist/types/spaced-repetition.types.js.map +1 -0
  218. package/dist/types/vector-search.types.d.ts +96 -0
  219. package/dist/types/vector-search.types.d.ts.map +1 -0
  220. package/dist/types/vector-search.types.js +2 -0
  221. package/dist/types/vector-search.types.js.map +1 -0
  222. package/dist/utils/configuration-validator.d.ts +23 -0
  223. package/dist/utils/configuration-validator.d.ts.map +1 -0
  224. package/dist/utils/configuration-validator.js +102 -0
  225. package/dist/utils/configuration-validator.js.map +1 -0
  226. package/dist/utils/database.d.ts.map +1 -1
  227. package/dist/utils/database.js +101 -95
  228. package/dist/utils/database.js.map +1 -1
  229. package/dist/utils/environment-check.d.ts +8 -0
  230. package/dist/utils/environment-check.d.ts.map +1 -0
  231. package/dist/utils/environment-check.js +25 -0
  232. package/dist/utils/environment-check.js.map +1 -0
  233. package/dist/utils/logger.d.ts +8 -0
  234. package/dist/utils/logger.d.ts.map +1 -0
  235. package/dist/utils/logger.js +33 -0
  236. package/dist/utils/logger.js.map +1 -0
  237. package/package.json +139 -125
  238. package/scripts/auto-setup.js +234 -234
  239. package/scripts/backup-daily.bat +28 -28
  240. package/scripts/backup-embeddings.js +108 -108
  241. package/scripts/check-db-integrity.js +93 -93
  242. package/scripts/debug-embeddings.js +184 -184
  243. package/scripts/direct-sql-migration.sql +36 -36
  244. package/scripts/docker-migration.sh +105 -105
  245. package/scripts/fix-migration.js +93 -93
  246. package/scripts/fix-vector-dimensions.js +206 -206
  247. package/scripts/migrate-embedding-data.js +307 -307
  248. package/scripts/regenerate-embeddings.js +144 -144
  249. package/scripts/restore-legacy.ps1 +60 -60
  250. package/scripts/run-migration.js +122 -122
  251. package/scripts/safe-migration.js +150 -150
  252. package/scripts/simple-migrate.js +41 -41
  253. package/scripts/simple-update.js +123 -123
  254. package/src/database/schema.sql +234 -159
  255. package/.cursor/rules/cache-management.mdc +0 -171
  256. package/.cursor/rules/database-schema.mdc +0 -344
  257. package/.cursor/rules/deployment.mdc +0 -596
  258. package/.cursor/rules/error-logging.mdc +0 -298
  259. package/.cursor/rules/forgetting-algorithms.mdc +0 -426
  260. package/.cursor/rules/http-server.mdc +0 -432
  261. package/.cursor/rules/hybrid-search.mdc +0 -424
  262. package/.cursor/rules/implementation.mdc +0 -369
  263. package/.cursor/rules/lightweight-embedding.mdc +0 -178
  264. package/.cursor/rules/mcp-client-development.mdc +0 -0
  265. package/.cursor/rules/mcp-server-development.mdc +0 -0
  266. package/.cursor/rules/mcp-tools-architecture.mdc +0 -205
  267. package/.cursor/rules/memento-memory-rule.mdc +0 -8
  268. package/.cursor/rules/memento-project-overview.mdc +0 -0
  269. package/.cursor/rules/memory-algorithms.mdc +0 -502
  270. package/.cursor/rules/monitoring.mdc +0 -622
  271. package/.cursor/rules/performance-alerts.mdc +0 -537
  272. package/.cursor/rules/performance-monitoring.mdc +0 -345
  273. package/.cursor/rules/performance-optimization.mdc +0 -563
  274. package/.cursor/rules/project-structure.mdc +0 -310
  275. package/.cursor/rules/testing.mdc +0 -473
  276. package/.dockerignore +0 -15
  277. package/.eslintrc.json +0 -34
  278. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -51
  279. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -45
  280. package/.github/ISSUE_TEMPLATE/question.md +0 -31
  281. package/.github/PULL_REQUEST_TEMPLATE.md +0 -97
  282. package/AGENTS.md +0 -28
  283. package/CHANGELOG.md +0 -416
  284. package/CODE_OF_CONDUCT.md +0 -62
  285. package/CONTRIBUTING.md +0 -165
  286. package/DOCKER_SETUP_GUIDE.md +0 -84
  287. package/Dockerfile +0 -90
  288. package/backup/legacy-removal-20250930-201816/http-server-legacy.ts +0 -1068
  289. package/backup/legacy-removal-20250930-201816/rollback-to-legacy.ps1 +0 -46
  290. package/backup/legacy-removal-20250930-201816/rollback-to-legacy.sh +0 -48
  291. package/dist/server/index-backup.d.ts +0 -5
  292. package/dist/server/index-backup.d.ts.map +0 -1
  293. package/dist/server/index-backup.js +0 -793
  294. package/dist/server/index-backup.js.map +0 -1
  295. package/dist/server/index-refactored.d.ts +0 -6
  296. package/dist/server/index-refactored.d.ts.map +0 -1
  297. package/dist/server/index-refactored.js +0 -206
  298. package/dist/server/index-refactored.js.map +0 -1
  299. package/dist/services/performance-monitoring-integration.d.ts +0 -77
  300. package/dist/services/performance-monitoring-integration.d.ts.map +0 -1
  301. package/dist/services/performance-monitoring-integration.js +0 -177
  302. package/dist/services/performance-monitoring-integration.js.map +0 -1
  303. package/dist/test/debug-http-v2.d.ts +0 -5
  304. package/dist/test/debug-http-v2.d.ts.map +0 -1
  305. package/dist/test/debug-http-v2.js +0 -28
  306. package/dist/test/debug-http-v2.js.map +0 -1
  307. package/dist/test/performance-benchmark.d.ts +0 -57
  308. package/dist/test/performance-benchmark.d.ts.map +0 -1
  309. package/dist/test/performance-benchmark.js +0 -427
  310. package/dist/test/performance-benchmark.js.map +0 -1
  311. package/dist/test/test-alerts-direct.d.ts +0 -7
  312. package/dist/test/test-alerts-direct.d.ts.map +0 -1
  313. package/dist/test/test-alerts-direct.js +0 -101
  314. package/dist/test/test-alerts-direct.js.map +0 -1
  315. package/dist/test/test-batch-scheduler.d.ts +0 -2
  316. package/dist/test/test-batch-scheduler.d.ts.map +0 -1
  317. package/dist/test/test-batch-scheduler.js +0 -156
  318. package/dist/test/test-batch-scheduler.js.map +0 -1
  319. package/dist/test/test-client.d.ts +0 -5
  320. package/dist/test/test-client.d.ts.map +0 -1
  321. package/dist/test/test-client.js +0 -86
  322. package/dist/test/test-client.js.map +0 -1
  323. package/dist/test/test-embedding.d.ts +0 -6
  324. package/dist/test/test-embedding.d.ts.map +0 -1
  325. package/dist/test/test-embedding.js +0 -142
  326. package/dist/test/test-embedding.js.map +0 -1
  327. package/dist/test/test-error-logging.d.ts +0 -7
  328. package/dist/test/test-error-logging.d.ts.map +0 -1
  329. package/dist/test/test-error-logging.js +0 -105
  330. package/dist/test/test-error-logging.js.map +0 -1
  331. package/dist/test/test-forgetting.d.ts +0 -6
  332. package/dist/test/test-forgetting.d.ts.map +0 -1
  333. package/dist/test/test-forgetting.js +0 -154
  334. package/dist/test/test-forgetting.js.map +0 -1
  335. package/dist/test/test-gemini-embedding.d.ts +0 -7
  336. package/dist/test/test-gemini-embedding.d.ts.map +0 -1
  337. package/dist/test/test-gemini-embedding.js +0 -134
  338. package/dist/test/test-gemini-embedding.js.map +0 -1
  339. package/dist/test/test-http-server-v2-simple.d.ts +0 -6
  340. package/dist/test/test-http-server-v2-simple.d.ts.map +0 -1
  341. package/dist/test/test-http-server-v2-simple.js +0 -131
  342. package/dist/test/test-http-server-v2-simple.js.map +0 -1
  343. package/dist/test/test-http-server-v2.d.ts +0 -7
  344. package/dist/test/test-http-server-v2.d.ts.map +0 -1
  345. package/dist/test/test-http-server-v2.js +0 -529
  346. package/dist/test/test-http-server-v2.js.map +0 -1
  347. package/dist/test/test-lightweight-embedding.d.ts +0 -6
  348. package/dist/test/test-lightweight-embedding.d.ts.map +0 -1
  349. package/dist/test/test-lightweight-embedding.js +0 -189
  350. package/dist/test/test-lightweight-embedding.js.map +0 -1
  351. package/dist/test/test-m1-completion.d.ts +0 -7
  352. package/dist/test/test-m1-completion.d.ts.map +0 -1
  353. package/dist/test/test-m1-completion.js +0 -124
  354. package/dist/test/test-m1-completion.js.map +0 -1
  355. package/dist/test/test-memory-injection-prompt.d.ts +0 -2
  356. package/dist/test/test-memory-injection-prompt.d.ts.map +0 -1
  357. package/dist/test/test-memory-injection-prompt.js +0 -299
  358. package/dist/test/test-memory-injection-prompt.js.map +0 -1
  359. package/dist/test/test-performance-alerts.d.ts +0 -7
  360. package/dist/test/test-performance-alerts.d.ts.map +0 -1
  361. package/dist/test/test-performance-alerts.js +0 -109
  362. package/dist/test/test-performance-alerts.js.map +0 -1
  363. package/dist/test/test-performance-monitor.d.ts +0 -2
  364. package/dist/test/test-performance-monitor.d.ts.map +0 -1
  365. package/dist/test/test-performance-monitor.js +0 -182
  366. package/dist/test/test-performance-monitor.js.map +0 -1
  367. package/dist/test/test-performance-monitoring.d.ts +0 -6
  368. package/dist/test/test-performance-monitoring.d.ts.map +0 -1
  369. package/dist/test/test-performance-monitoring.js +0 -156
  370. package/dist/test/test-performance-monitoring.js.map +0 -1
  371. package/dist/test/test-search.d.ts +0 -5
  372. package/dist/test/test-search.d.ts.map +0 -1
  373. package/dist/test/test-search.js +0 -141
  374. package/dist/test/test-search.js.map +0 -1
  375. package/dist/test/test-simple-alerts.d.ts +0 -6
  376. package/dist/test/test-simple-alerts.d.ts.map +0 -1
  377. package/dist/test/test-simple-alerts.js +0 -106
  378. package/dist/test/test-simple-alerts.js.map +0 -1
  379. package/dist/test/test-vector-search-engine.d.ts +0 -2
  380. package/dist/test/test-vector-search-engine.d.ts.map +0 -1
  381. package/dist/test/test-vector-search-engine.js +0 -225
  382. package/dist/test/test-vector-search-engine.js.map +0 -1
  383. package/docker-compose.dev.yml +0 -50
  384. package/docker-compose.prod.yml +0 -77
  385. package/docker-compose.yml +0 -43
  386. package/docs/en/Memento-Goals.md +0 -217
  387. package/docs/en/Memento-M1-DetailSpecs.md +0 -130
  388. package/docs/en/Memento-Milestones.md +0 -135
  389. package/docs/en/Search-Ranking-Memory-Decay-Formulas.md +0 -177
  390. package/docs/en/api-reference.md +0 -658
  391. package/docs/en/architecture.md +0 -1302
  392. package/docs/en/developer-guide.md +0 -1005
  393. package/docs/en/user-manual.md +0 -595
  394. package/docs/ko/Memento-Goals.md +0 -217
  395. package/docs/ko/Memento-M1-DetailSpecs.md +0 -130
  396. package/docs/ko/Memento-Milestones.md +0 -134
  397. package/docs/ko/Search-Ranking-Memory-Decay-Formulas.md +0 -177
  398. package/docs/ko/api-reference.md +0 -658
  399. package/docs/ko/architecture.md +0 -1302
  400. package/docs/ko/developer-guide.md +0 -1006
  401. package/docs/ko/embedding-api-reference.md +0 -122
  402. package/docs/ko/embedding-configuration.md +0 -62
  403. package/docs/ko/embedding-performance-benchmark.md +0 -62
  404. package/docs/ko/embedding-service-guide.md +0 -314
  405. package/docs/ko/user-manual.md +0 -595
  406. package/env.example +0 -49
  407. package/install.sh +0 -191
  408. package/mcp-http-client.js +0 -218
  409. package/mcp.json +0 -0
  410. package/packages/mcp-client/docs/API-REFERENCE.md +0 -560
  411. package/packages/mcp-client/docs/BEST-PRACTICES.md +0 -564
  412. package/packages/mcp-client/docs/MIGRATION-GUIDE.md +0 -344
  413. package/packages/mcp-client/docs/PERFORMANCE-GUIDE.md +0 -476
  414. package/packages/mcp-client/docs/TROUBLESHOOTING.md +0 -564
  415. package/packages/mcp-client/package-lock.json +0 -907
  416. package/packages/mcp-client/package.json +0 -58
  417. package/packages/mcp-client/performance-optimizer.js +0 -428
  418. package/packages/mcp-client/test-basic.js +0 -65
  419. package/packages/mcp-client/test-integration.js +0 -366
  420. package/src/algorithms/forgetting-algorithm.spec.ts +0 -538
  421. package/src/algorithms/forgetting-algorithm.ts +0 -243
  422. package/src/algorithms/hybrid-search-engine.spec.ts +0 -484
  423. package/src/algorithms/hybrid-search-engine.ts +0 -489
  424. package/src/algorithms/search-engine.spec.ts +0 -429
  425. package/src/algorithms/search-engine.ts +0 -392
  426. package/src/algorithms/search-ranking.spec.ts +0 -293
  427. package/src/algorithms/search-ranking.ts +0 -407
  428. package/src/algorithms/spaced-repetition.spec.ts +0 -510
  429. package/src/algorithms/spaced-repetition.ts +0 -238
  430. package/src/algorithms/vector-search-engine.ts +0 -505
  431. package/src/client/index.spec.ts +0 -427
  432. package/src/client/index.ts +0 -222
  433. package/src/config/index.spec.ts +0 -339
  434. package/src/config/index.ts +0 -106
  435. package/src/database/init.spec.ts +0 -239
  436. package/src/database/init.ts +0 -130
  437. package/src/database/migrate.spec.ts +0 -293
  438. package/src/database/migrate.ts +0 -94
  439. package/src/database/migrations/001_add_embedding_metadata.sql +0 -29
  440. package/src/npm-client/context-injector.spec.ts +0 -335
  441. package/src/npm-client/context-injector.ts +0 -412
  442. package/src/npm-client/index.spec.ts +0 -108
  443. package/src/npm-client/index.ts +0 -96
  444. package/src/npm-client/memento-client.spec.ts +0 -549
  445. package/src/npm-client/memento-client.ts +0 -501
  446. package/src/npm-client/memory-manager.spec.ts +0 -374
  447. package/src/npm-client/memory-manager.ts +0 -414
  448. package/src/npm-client/types.spec.ts +0 -427
  449. package/src/npm-client/types.ts +0 -296
  450. package/src/npm-client/utils.spec.ts +0 -355
  451. package/src/npm-client/utils.ts +0 -423
  452. package/src/scripts/copy-assets.js +0 -37
  453. package/src/server/http-server.spec.ts +0 -648
  454. package/src/server/http-server.ts +0 -1030
  455. package/src/server/index-backup.ts +0 -875
  456. package/src/server/index-refactored.ts +0 -237
  457. package/src/server/index.spec.ts +0 -281
  458. package/src/server/index.ts +0 -347
  459. package/src/server/simple-mcp-server.spec.ts +0 -207
  460. package/src/server/simple-mcp-server.ts +0 -173
  461. package/src/services/async-optimizer.spec.ts +0 -569
  462. package/src/services/async-optimizer.ts +0 -484
  463. package/src/services/batch-scheduler.ts +0 -759
  464. package/src/services/cache-service.spec.ts +0 -372
  465. package/src/services/cache-service.ts +0 -434
  466. package/src/services/database-optimizer.spec.ts +0 -344
  467. package/src/services/database-optimizer.ts +0 -450
  468. package/src/services/embedding-provider-factory.ts +0 -173
  469. package/src/services/embedding-service.spec.ts +0 -342
  470. package/src/services/embedding-service.ts +0 -333
  471. package/src/services/error-logging-service.spec.ts +0 -416
  472. package/src/services/error-logging-service.ts +0 -383
  473. package/src/services/forgetting-policy-service.spec.ts +0 -140
  474. package/src/services/forgetting-policy-service.ts +0 -334
  475. package/src/services/gemini-embedding-service.spec.ts +0 -463
  476. package/src/services/gemini-embedding-service.ts +0 -283
  477. package/src/services/lightweight-embedding-service.spec.ts +0 -458
  478. package/src/services/lightweight-embedding-service.ts +0 -324
  479. package/src/services/memory-embedding-service.spec.ts +0 -417
  480. package/src/services/memory-embedding-service.ts +0 -289
  481. package/src/services/minilm-embedding-service.spec.ts +0 -104
  482. package/src/services/minilm-embedding-service.ts +0 -262
  483. package/src/services/performance-alert-service.spec.ts +0 -517
  484. package/src/services/performance-alert-service.ts +0 -477
  485. package/src/services/performance-monitor.spec.ts +0 -401
  486. package/src/services/performance-monitor.ts +0 -532
  487. package/src/services/performance-monitoring-integration.spec.ts +0 -478
  488. package/src/services/performance-monitoring-integration.ts.bak +0 -276
  489. package/src/services/unified-embedding-service.spec.ts +0 -224
  490. package/src/services/unified-embedding-service.ts +0 -255
  491. package/src/test/debug-http-v2.ts +0 -30
  492. package/src/test/embedding-integration-test.spec.ts +0 -295
  493. package/src/test/embedding-integration-test.ts +0 -295
  494. package/src/test/embedding-performance-benchmark.spec.ts +0 -354
  495. package/src/test/embedding-performance-benchmark.ts +0 -312
  496. package/src/test/performance-benchmark.ts +0 -565
  497. package/src/test/test-alerts-direct.ts +0 -136
  498. package/src/test/test-batch-scheduler-simple.spec.ts +0 -122
  499. package/src/test/test-batch-scheduler.spec.ts +0 -453
  500. package/src/test/test-batch-scheduler.ts +0 -182
  501. package/src/test/test-client.ts +0 -97
  502. package/src/test/test-embedding.ts +0 -153
  503. package/src/test/test-error-handling.spec.ts +0 -575
  504. package/src/test/test-error-logging.ts +0 -117
  505. package/src/test/test-forgetting.ts +0 -162
  506. package/src/test/test-gemini-embedding.ts +0 -159
  507. package/src/test/test-http-server-v2-simple.ts +0 -147
  508. package/src/test/test-http-server-v2.ts +0 -586
  509. package/src/test/test-hybrid-search-engine.spec.ts +0 -521
  510. package/src/test/test-integration-fixed.spec.ts +0 -612
  511. package/src/test/test-integration.spec.ts +0 -463
  512. package/src/test/test-lightweight-embedding.ts +0 -208
  513. package/src/test/test-m1-completion.spec.ts +0 -614
  514. package/src/test/test-m1-completion.ts +0 -141
  515. package/src/test/test-m1-integration.spec.ts +0 -514
  516. package/src/test/test-memory-injection-prompt.spec.ts +0 -650
  517. package/src/test/test-memory-injection-prompt.ts +0 -391
  518. package/src/test/test-performance-alerts.ts +0 -125
  519. package/src/test/test-performance-monitor-updates.spec.ts +0 -490
  520. package/src/test/test-performance-monitor.spec.ts +0 -284
  521. package/src/test/test-performance-monitor.ts +0 -228
  522. package/src/test/test-performance-monitoring.ts +0 -171
  523. package/src/test/test-search.ts +0 -151
  524. package/src/test/test-simple-alerts.ts +0 -136
  525. package/src/test/test-vector-search-engine.spec.ts +0 -408
  526. package/src/test/test-vector-search-engine.ts +0 -303
  527. package/src/tools/base-tool.ts +0 -189
  528. package/src/tools/cleanup-memory-tool.ts +0 -77
  529. package/src/tools/database-optimize-tool.ts +0 -79
  530. package/src/tools/error-stats.ts +0 -119
  531. package/src/tools/forget-tool.spec.ts +0 -613
  532. package/src/tools/forget-tool.ts +0 -454
  533. package/src/tools/forgetting-stats-tool.ts +0 -47
  534. package/src/tools/index.ts +0 -71
  535. package/src/tools/memory-injection-prompt.ts +0 -257
  536. package/src/tools/performance-alerts.ts +0 -226
  537. package/src/tools/performance-stats-tool.ts +0 -48
  538. package/src/tools/pin-tool.spec.ts +0 -497
  539. package/src/tools/pin-tool.ts +0 -277
  540. package/src/tools/recall-tool.spec.ts +0 -475
  541. package/src/tools/recall-tool.ts +0 -389
  542. package/src/tools/remember-tool.spec.ts +0 -469
  543. package/src/tools/remember-tool.ts +0 -112
  544. package/src/tools/resolve-error.ts +0 -69
  545. package/src/tools/tool-registry.ts +0 -417
  546. package/src/tools/types.ts +0 -63
  547. package/src/tools/unpin-tool.spec.ts +0 -549
  548. package/src/tools/unpin-tool.ts +0 -306
  549. package/src/types/embedding.types.ts +0 -78
  550. package/src/types/index.spec.ts +0 -420
  551. package/src/types/index.ts +0 -117
  552. package/src/utils/database.spec.ts +0 -77
  553. package/src/utils/database.ts +0 -458
  554. package/src/utils/stopwords.ts +0 -128
  555. package/start-docker-setup.bat +0 -38
  556. package/static/logo.png +0 -0
  557. package/static/memento_logo.svg +0 -2
  558. package/test-docker.js +0 -103
  559. package/tsconfig.json +0 -46
  560. package/vitest.config.ts +0 -23
@@ -1,122 +0,0 @@
1
- # 임베딩 서비스 API 레퍼런스
2
-
3
- ## UnifiedEmbeddingService
4
-
5
- 통합 임베딩 서비스의 메인 클래스입니다.
6
-
7
- ### 생성자
8
-
9
- ```typescript
10
- new UnifiedEmbeddingService()
11
- ```
12
-
13
- ### 메서드
14
-
15
- #### generateEmbedding(text, preferredProvider?)
16
-
17
- 텍스트를 임베딩 벡터로 변환합니다.
18
-
19
- **매개변수:**
20
- - `text: string` - 변환할 텍스트
21
- - `preferredProvider?: EmbeddingProvider` - 선호하는 제공자 (선택사항)
22
-
23
- **반환값:**
24
- ```typescript
25
- Promise<EmbeddingResult | null>
26
- ```
27
-
28
- **예시:**
29
- ```typescript
30
- const result = await service.generateEmbedding('안녕하세요');
31
- console.log(result.embedding); // [0.1, 0.2, ...]
32
- console.log(result.model); // 'minilm'
33
- ```
34
-
35
- #### searchSimilar(query, embeddings, limit?, threshold?)
36
-
37
- 유사한 임베딩을 검색합니다.
38
-
39
- **매개변수:**
40
- - `query: string` - 검색 쿼리
41
- - `embeddings: EmbeddingData[]` - 검색할 임베딩 배열
42
- - `limit?: number` - 결과 개수 제한 (기본값: 10)
43
- - `threshold?: number` - 유사도 임계값 (기본값: 0.7)
44
-
45
- **반환값:**
46
- ```typescript
47
- Promise<SimilarityResult[]>
48
- ```
49
-
50
- **예시:**
51
- ```typescript
52
- const results = await service.searchSimilar('React', memories, 5, 0.8);
53
- ```
54
-
55
- #### isAvailable()
56
-
57
- 서비스 사용 가능 여부를 확인합니다.
58
-
59
- **반환값:**
60
- ```typescript
61
- boolean
62
- ```
63
-
64
- #### getCurrentProviderName()
65
-
66
- 현재 사용 중인 제공자 이름을 반환합니다.
67
-
68
- **반환값:**
69
- ```typescript
70
- string
71
- ```
72
-
73
- #### getModelInfo()
74
-
75
- 현재 모델 정보를 반환합니다.
76
-
77
- **반환값:**
78
- ```typescript
79
- { model: string; dimensions: number; maxTokens: number }
80
- ```
81
-
82
- ## 타입 정의
83
-
84
- ### EmbeddingResult
85
-
86
- ```typescript
87
- interface EmbeddingResult {
88
- embedding: number[];
89
- model: string;
90
- usage: {
91
- prompt_tokens: number;
92
- total_tokens: number;
93
- };
94
- }
95
- ```
96
-
97
- ### SimilarityResult
98
-
99
- ```typescript
100
- interface SimilarityResult {
101
- id: string;
102
- content: string;
103
- similarity: number;
104
- score: number;
105
- }
106
- ```
107
-
108
- ### EmbeddingData
109
-
110
- ```typescript
111
- interface EmbeddingData {
112
- id: string;
113
- content: string;
114
- embedding: number[];
115
- }
116
- ```
117
-
118
- ### EmbeddingProvider
119
-
120
- ```typescript
121
- type EmbeddingProvider = 'tfidf' | 'minilm' | 'openai' | 'gemini';
122
- ```
@@ -1,62 +0,0 @@
1
- # 임베딩 서비스 설정 가이드
2
-
3
- ## 환경 변수 설정
4
-
5
- ### 기본 설정
6
-
7
- ```bash
8
- # .env 파일
9
- EMBEDDING_PROVIDER=minilm
10
- EMBEDDING_DIMENSIONS=384
11
- ```
12
-
13
- ### 제공자별 설정
14
-
15
- #### TF-IDF
16
- ```bash
17
- EMBEDDING_PROVIDER=tfidf
18
- EMBEDDING_DIMENSIONS=512
19
- ```
20
-
21
- #### MiniLM
22
- ```bash
23
- EMBEDDING_PROVIDER=minilm
24
- EMBEDDING_DIMENSIONS=384
25
- ```
26
-
27
- #### OpenAI
28
- ```bash
29
- EMBEDDING_PROVIDER=openai
30
- OPENAI_API_KEY=your_api_key_here
31
- OPENAI_MODEL=text-embedding-3-small
32
- EMBEDDING_DIMENSIONS=1536
33
- ```
34
-
35
- #### Gemini
36
- ```bash
37
- EMBEDDING_PROVIDER=gemini
38
- GEMINI_API_KEY=your_api_key_here
39
- GEMINI_MODEL=text-embedding-004
40
- EMBEDDING_DIMENSIONS=768
41
- ```
42
-
43
- ## 설정 우선순위
44
-
45
- 1. 명시적 제공자 지정
46
- 2. 환경 변수 설정
47
- 3. 기본값 (minilm)
48
-
49
- ## 성능 튜닝
50
-
51
- ### 메모리 최적화
52
- ```bash
53
- # Node.js 힙 크기 증가
54
- NODE_OPTIONS="--max-old-space-size=4096"
55
- ```
56
-
57
- ### 캐시 설정
58
- ```typescript
59
- // MiniLM 캐시 크기 조정
60
- const service = new MiniLMEmbeddingService();
61
- // 캐시는 자동으로 관리됨
62
- ```
@@ -1,62 +0,0 @@
1
- # 임베딩 서비스 성능 벤치마크 결과
2
-
3
- ## 개요
4
-
5
- Memento 프로젝트의 4가지 임베딩 제공자에 대한 성능 벤치마크 결과입니다.
6
-
7
- ## 벤치마크 환경
8
-
9
- - **CPU**: Intel/AMD x64
10
- - **메모리**: 8GB+
11
- - **Node.js**: v20+
12
- - **테스트 데이터**: 10개 텍스트 샘플
13
- - **측정 항목**: 속도, 메모리 사용량, 성공률
14
-
15
- ## 성능 결과 요약
16
-
17
- | 제공자 | 성공률 | 평균 속도 | 메모리 사용량 | 차원 | 비용 |
18
- |--------|--------|-----------|---------------|------|------|
19
- | **TF-IDF** | 100% | 0.82ms | 4.48MB | 512 | 무료 |
20
- | **MiniLM** | 100% | 56.50ms | 47.07MB | 384 | 무료 |
21
- | **통합** | 100% | 91.34ms | 25.91MB | 384 | 무료 |
22
-
23
- ## 상세 분석
24
-
25
- ### TF-IDF 제공자
26
- - **속도**: ⚡ 극도로 빠름 (0.82ms)
27
- - **메모리**: 💾 매우 효율적 (4.48MB)
28
- - **정확도**: 📊 키워드 기반 매칭
29
- - **추천 용도**: 대량 처리, 실시간 검색
30
-
31
- ### MiniLM 제공자
32
- - **속도**: 🎯 균형잡힌 성능 (56.50ms)
33
- - **메모리**: 📈 중간 수준 (47.07MB)
34
- - **정확도**: 🧠 의미 이해 능력
35
- - **추천 용도**: 일반적인 AI Agent 용도
36
-
37
- ### 통합 서비스
38
- - **속도**: 🔄 폴백 처리로 인한 오버헤드
39
- - **메모리**: 📊 여러 서비스 관리
40
- - **정확도**: 🎯 최적 제공자 자동 선택
41
- - **추천 용도**: 프로덕션 환경
42
-
43
- ## 선택 가이드
44
-
45
- ### 속도 우선
46
- **TF-IDF** - 0.82ms로 가장 빠름
47
-
48
- ### 정확도 우선
49
- **MiniLM** - 의미 이해 능력과 속도의 균형
50
-
51
- ### 안정성 우선
52
- **통합 서비스** - 자동 폴백으로 안정성 보장
53
-
54
- ## 벤치마크 실행
55
-
56
- ```bash
57
- # 전체 벤치마크
58
- npm run benchmark:embedding
59
-
60
- # 특정 서비스만
61
- npm run test:embedding-benchmark
62
- ```
@@ -1,314 +0,0 @@
1
- # 임베딩 서비스 사용 가이드
2
-
3
- ## 개요
4
-
5
- Memento 프로젝트의 임베딩 서비스는 4가지 제공자를 지원하는 통합 시스템입니다:
6
- - **TF-IDF**: 빠른 속도, 512차원, 무료
7
- - **MiniLM**: 균형잡힌 성능, 384차원, 무료
8
- - **OpenAI**: 최고 성능, 1536차원, 유료
9
- - **Gemini**: 고성능, 768차원, 유료
10
-
11
- ## 빠른 시작
12
-
13
- ### 1. 기본 사용법
14
-
15
- ```typescript
16
- import { UnifiedEmbeddingService } from './src/services/unified-embedding-service.js';
17
-
18
- const embeddingService = new UnifiedEmbeddingService();
19
-
20
- // 텍스트 임베딩 생성
21
- const result = await embeddingService.generateEmbedding('안녕하세요, Memento입니다!');
22
- console.log('임베딩 차원:', result.embedding.length);
23
- console.log('사용된 모델:', result.model);
24
-
25
- // 유사도 검색
26
- const memories = [
27
- { id: '1', content: 'React Hook 사용법', embedding: [0.1, 0.2, ...] },
28
- { id: '2', content: 'TypeScript 타입 정의', embedding: [0.3, 0.4, ...] }
29
- ];
30
-
31
- const similar = await embeddingService.searchSimilar('React 관련 질문', memories, 5, 0.7);
32
- console.log('유사한 메모리:', similar);
33
- ```
34
-
35
- ### 2. 환경 설정
36
-
37
- `.env` 파일에 설정:
38
-
39
- ```bash
40
- # 기본 임베딩 제공자 선택
41
- EMBEDDING_PROVIDER=minilm # 옵션: tfidf, minilm, openai, gemini
42
-
43
- # OpenAI 설정 (선택사항)
44
- OPENAI_API_KEY=your_openai_api_key_here
45
- OPENAI_MODEL=text-embedding-3-small
46
-
47
- # Gemini 설정 (선택사항)
48
- GEMINI_API_KEY=your_gemini_api_key_here
49
- GEMINI_MODEL=text-embedding-004
50
-
51
- # 임베딩 차원 (자동 설정됨)
52
- EMBEDDING_DIMENSIONS=384 # MiniLM 기본값
53
- ```
54
-
55
- ## 제공자별 상세 가이드
56
-
57
- ### TF-IDF 제공자
58
-
59
- **특징**:
60
- - ⚡ 극도로 빠른 속도 (0.82ms 평균)
61
- - 💾 낮은 메모리 사용량 (4.48MB)
62
- - 🆓 완전 무료
63
- - 📊 512차원 벡터
64
-
65
- **사용 시나리오**:
66
- - 대량 텍스트 처리
67
- - 실시간 검색
68
- - 리소스 제약 환경
69
-
70
- ```typescript
71
- import { LightweightEmbeddingService } from './src/services/lightweight-embedding-service.js';
72
-
73
- const tfidfService = new LightweightEmbeddingService();
74
- const result = await tfidfService.generateEmbedding('빠른 처리가 필요한 텍스트');
75
- ```
76
-
77
- ### MiniLM 제공자
78
-
79
- **특징**:
80
- - 🎯 균형잡힌 성능 (56.50ms 평균)
81
- - 🧠 의미 이해 능력
82
- - 🆓 완전 무료
83
- - 📊 384차원 벡터
84
-
85
- **사용 시나리오**:
86
- - 일반적인 AI Agent 용도
87
- - 의미 기반 검색
88
- - 성능과 정확성의 균형
89
-
90
- ```typescript
91
- import { MiniLMEmbeddingService } from './src/services/minilm-embedding-service.js';
92
-
93
- const minilmService = new MiniLMEmbeddingService();
94
- const result = await minilmService.generateEmbedding('의미를 이해해야 하는 텍스트');
95
- ```
96
-
97
- ### OpenAI 제공자
98
-
99
- **특징**:
100
- - 🏆 최고 성능
101
- - 🧠 뛰어난 의미 이해
102
- - 💰 유료 (API 비용)
103
- - 📊 1536차원 벡터
104
-
105
- **사용 시나리오**:
106
- - 고품질 임베딩 필요
107
- - 복잡한 의미 분석
108
- - 비용을 감수할 수 있는 경우
109
-
110
- ```typescript
111
- // 환경 변수에 OPENAI_API_KEY 설정 필요
112
- const result = await embeddingService.generateEmbedding('고품질 임베딩이 필요한 텍스트');
113
- ```
114
-
115
- ### Gemini 제공자
116
-
117
- **특징**:
118
- - 🚀 고성능
119
- - 🌍 다국어 지원
120
- - 💰 유료 (API 비용)
121
- - 📊 768차원 벡터
122
-
123
- **사용 시나리오**:
124
- - 다국어 텍스트 처리
125
- - Google 생태계 활용
126
- - 고성능이 필요한 경우
127
-
128
- ```typescript
129
- // 환경 변수에 GEMINI_API_KEY 설정 필요
130
- const result = await embeddingService.generateEmbedding('다국어 텍스트');
131
- ```
132
-
133
- ## 고급 사용법
134
-
135
- ### 1. 제공자 직접 선택
136
-
137
- ```typescript
138
- // 특정 제공자 강제 사용
139
- const result = await embeddingService.generateEmbedding(
140
- '텍스트',
141
- 'minilm' // 제공자 명시
142
- );
143
- ```
144
-
145
- ### 2. 폴백 메커니즘
146
-
147
- ```typescript
148
- // 폴백 제공자 설정
149
- embeddingService.setFallbackProviders(['minilm', 'tfidf']);
150
-
151
- // 기본 제공자 실패 시 자동으로 폴백 제공자 시도
152
- const result = await embeddingService.generateEmbedding('텍스트');
153
- ```
154
-
155
- ### 3. 서비스 상태 확인
156
-
157
- ```typescript
158
- // 사용 가능 여부 확인
159
- if (embeddingService.isAvailable()) {
160
- const result = await embeddingService.generateEmbedding('텍스트');
161
- }
162
-
163
- // 현재 사용 중인 제공자 확인
164
- const currentProvider = embeddingService.getCurrentProviderName();
165
- console.log('현재 제공자:', currentProvider);
166
-
167
- // 모델 정보 확인
168
- const modelInfo = embeddingService.getModelInfo();
169
- console.log('모델 정보:', modelInfo);
170
- ```
171
-
172
- ## 성능 최적화
173
-
174
- ### 1. 배치 처리
175
-
176
- ```typescript
177
- // 여러 텍스트를 동시에 처리
178
- const texts = ['텍스트1', '텍스트2', '텍스트3'];
179
- const results = await Promise.all(
180
- texts.map(text => embeddingService.generateEmbedding(text))
181
- );
182
- ```
183
-
184
- ### 2. 캐싱 활용
185
-
186
- ```typescript
187
- // MiniLM 서비스는 자동으로 캐싱됨
188
- const result1 = await minilmService.generateEmbedding('같은 텍스트'); // 모델 로딩
189
- const result2 = await minilmService.generateEmbedding('같은 텍스트'); // 캐시에서 반환
190
- ```
191
-
192
- ### 3. 메모리 관리
193
-
194
- ```typescript
195
- // 대량 처리 시 메모리 정리
196
- for (const text of largeTextArray) {
197
- const result = await embeddingService.generateEmbedding(text);
198
- // 결과 처리
199
- // 가비지 컬렉션을 위해 참조 해제
200
- }
201
- ```
202
-
203
- ## 에러 처리
204
-
205
- ### 1. 기본 에러 처리
206
-
207
- ```typescript
208
- try {
209
- const result = await embeddingService.generateEmbedding('텍스트');
210
- } catch (error) {
211
- if (error.message.includes('텍스트가 비어있습니다')) {
212
- console.error('입력 텍스트를 확인해주세요');
213
- } else if (error.message.includes('사용 가능한 제공자가 없습니다')) {
214
- console.error('모든 임베딩 제공자가 사용 불가능합니다');
215
- } else {
216
- console.error('임베딩 생성 실패:', error.message);
217
- }
218
- }
219
- ```
220
-
221
- ### 2. 제공자별 에러 처리
222
-
223
- ```typescript
224
- try {
225
- const result = await embeddingService.generateEmbedding('텍스트');
226
- } catch (error) {
227
- // OpenAI API 에러
228
- if (error.status === 429) {
229
- console.error('API 할당량 초과');
230
- } else if (error.status === 401) {
231
- console.error('API 키가 유효하지 않습니다');
232
- }
233
-
234
- // Gemini API 에러
235
- if (error.message.includes('quota')) {
236
- console.error('Gemini API 할당량 초과');
237
- }
238
- }
239
- ```
240
-
241
- ## 테스트
242
-
243
- ### 1. 단위 테스트
244
-
245
- ```typescript
246
- import { describe, it, expect } from 'vitest';
247
- import { UnifiedEmbeddingService } from '../src/services/unified-embedding-service.js';
248
-
249
- describe('임베딩 서비스 테스트', () => {
250
- it('텍스트 임베딩 생성', async () => {
251
- const service = new UnifiedEmbeddingService();
252
- const result = await service.generateEmbedding('테스트 텍스트');
253
-
254
- expect(result).toBeDefined();
255
- expect(result.embedding).toBeInstanceOf(Array);
256
- expect(result.embedding.length).toBeGreaterThan(0);
257
- });
258
- });
259
- ```
260
-
261
- ### 2. 성능 벤치마크
262
-
263
- ```bash
264
- # 벤치마크 실행
265
- npm run benchmark:embedding
266
-
267
- # 특정 서비스 테스트
268
- npm run test:embedding-benchmark
269
- ```
270
-
271
- ## 문제 해결
272
-
273
- ### 1. 일반적인 문제
274
-
275
- **Q: MiniLM 모델 로딩이 느려요**
276
- A: 첫 번째 호출 시에만 모델을 로딩합니다. 이후 호출은 캐시에서 빠르게 처리됩니다.
277
-
278
- **Q: OpenAI API 에러가 발생해요**
279
- A: API 키가 올바른지, 할당량이 남아있는지 확인해주세요.
280
-
281
- **Q: 벡터 차원이 맞지 않아요**
282
- A: 각 제공자는 다른 차원을 사용합니다. 통합 서비스를 사용하면 자동으로 처리됩니다.
283
-
284
- ### 2. 성능 문제
285
-
286
- **Q: 임베딩 생성이 너무 느려요**
287
- A: TF-IDF 제공자를 사용하거나, 배치 처리를 고려해보세요.
288
-
289
- **Q: 메모리 사용량이 많아요**
290
- A: MiniLM 모델이 메모리를 많이 사용합니다. TF-IDF를 사용하거나 서버 리소스를 늘려보세요.
291
-
292
- ## 마이그레이션 가이드
293
-
294
- ### 기존 코드에서 통합 서비스로 마이그레이션
295
-
296
- ```typescript
297
- // 기존 코드
298
- import { EmbeddingService } from './src/services/embedding-service.js';
299
- const oldService = new EmbeddingService();
300
-
301
- // 새로운 코드
302
- import { UnifiedEmbeddingService } from './src/services/unified-embedding-service.js';
303
- const newService = new UnifiedEmbeddingService();
304
-
305
- // API는 동일하므로 코드 변경 최소화
306
- const result = await newService.generateEmbedding('텍스트');
307
- ```
308
-
309
- ## 추가 리소스
310
-
311
- - [성능 벤치마크 결과](./embedding-performance-benchmark.md)
312
- - [API 레퍼런스](./embedding-api-reference.md)
313
- - [설정 가이드](./embedding-configuration.md)
314
- - [문제 해결 FAQ](./embedding-troubleshooting.md)