소스 검색

Merge branch 'development' of github.com:visuddhinanda/mint into development

visuddhinanda 1 주 전
부모
커밋
73ba286f5e

+ 3 - 2
api-v13/app/Console/Commands/IndexTipitaka.php

@@ -233,13 +233,14 @@ class IndexTipitaka extends Command
             'resource_id' => $paraInfo['uid'], // Use uid from getPaliData for resource_id
             'resource_id' => $paraInfo['uid'], // Use uid from getPaliData for resource_id
             'resource_type' => 'original_text',
             'resource_type' => 'original_text',
             'title' => [
             'title' => [
-                'pali' => "{$currChapter} paragraph {$paraInfo['paragraph']}"
+                ['text'=>['pali' => "{$currChapter} paragraph {$paraInfo['paragraph']}"]]
+                
             ],
             ],
             'summary' => [
             'summary' => [
                 'text' => $this->summary ? $this->summaryService->summarize($content['markdown']) : ''
                 'text' => $this->summary ? $this->summaryService->summarize($content['markdown']) : ''
             ],
             ],
             'content' => [
             'content' => [
-                'pali' => implode("\n\n", $markdown),
+                ['text'=>['pali' => implode("\n\n", $markdown)]]
             ],
             ],
             'bold_single' => implode(" ", $bold_single),
             'bold_single' => implode(" ", $bold_single),
             'bold_multi' => implode(" ", $bold_multi),
             'bold_multi' => implode(" ", $bold_multi),

+ 13 - 3
api-v13/app/Console/Commands/UpgradeProgress.php

@@ -17,7 +17,7 @@ class UpgradeProgress extends Command
      * php artisan upgrade:progress --book=168 --para=916 --channel=19f53a65-81db-4b7d-8144-ac33f1217d34
      * php artisan upgrade:progress --book=168 --para=916 --channel=19f53a65-81db-4b7d-8144-ac33f1217d34
      * @var string
      * @var string
      */
      */
-    protected $signature = 'upgrade:progress {--book=} {--para=} {--channel=}';
+    protected $signature = 'upgrade:progress {--book=} {--para=} {--channel=} {--resume}';
 
 
     /**
     /**
      * The console command description.
      * The console command description.
@@ -52,18 +52,28 @@ class UpgradeProgress extends Command
         $para = $this->option('para');
         $para = $this->option('para');
         $channelId = $this->option('channel');
         $channelId = $this->option('channel');
         if ($book && $para && $channelId) {
         if ($book && $para && $channelId) {
-            $sentences = Sentence::where('strlen', '>', 0)
+                $sentences = Sentence::where('strlen', '>', 0)
                 ->where('book_id', $book)
                 ->where('book_id', $book)
                 ->where('paragraph', $para)
                 ->where('paragraph', $para)
                 ->where('channel_uid', $channelId)
                 ->where('channel_uid', $channelId)
                 ->groupby('book_id', 'paragraph', 'channel_uid')
                 ->groupby('book_id', 'paragraph', 'channel_uid')
                 ->select('book_id', 'paragraph', 'channel_uid');
                 ->select('book_id', 'paragraph', 'channel_uid');
         } else {
         } else {
-            $sentences = Sentence::where('strlen', '>', 0)
+            if($this->option('resume')){
+                $sentences = Sentence::where('strlen', '>', 0)
+                ->whereBetween('book_id', [$book,1000])
+                ->where('paragraph','>=', $para)
+                ->whereNotNull('channel_uid')
+                ->groupby('book_id', 'paragraph', 'channel_uid')
+                ->select('book_id', 'paragraph', 'channel_uid');
+            }else{
+                $sentences = Sentence::where('strlen', '>', 0)
                 ->where('book_id', '<', 1000)
                 ->where('book_id', '<', 1000)
                 ->whereNotNull('channel_uid')
                 ->whereNotNull('channel_uid')
                 ->groupby('book_id', 'paragraph', 'channel_uid')
                 ->groupby('book_id', 'paragraph', 'channel_uid')
                 ->select('book_id', 'paragraph', 'channel_uid');
                 ->select('book_id', 'paragraph', 'channel_uid');
+            }
+
         }
         }
         $count = $sentences->count();
         $count = $sentences->count();
         $sentences = $sentences->cursor();
         $sentences = $sentences->cursor();

+ 3 - 3
langchain-server/pyproject.toml

@@ -7,16 +7,16 @@ authors = [
 ]
 ]
 description = "A LLM service"
 description = "A LLM service"
 readme = "README.md"
 readme = "README.md"
-requires-python = ">=3.12"
+requires-python = ">=3.14"
 classifiers = [
 classifiers = [
     "Programming Language :: Python :: 3",
     "Programming Language :: Python :: 3",
     "Operating System :: OS Independent",
     "Operating System :: OS Independent",
 ]
 ]
 license = "MIT"
 license = "MIT"
-dependencies = ["bottle>=0.13", "langchain>=1.2"]
+dependencies = ["bottle", "langchain"]
 
 
 [project.urls]
 [project.urls]
-Homepage = "https://github.com/iapt-platform/mint/tree/master/rhododendron"
+Homepage = "https://github.com/iapt-platform/mint/tree/master/langchain-server"
 Issues = "https://github.com/iapt-platform/mint/issues"
 Issues = "https://github.com/iapt-platform/mint/issues"
 
 
 [project.scripts]
 [project.scripts]

+ 6 - 0
sutta-pitaka-importer/.gitignore

@@ -0,0 +1,6 @@
+/tmp/
+
+/config.toml
+
+*.egg-info
+__pycache__/

+ 19 - 0
sutta-pitaka-importer/README.md

@@ -0,0 +1,19 @@
+# SUTTA-PITAKA
+
+## Usage
+
+```bash
+# Initial python3 virtual env
+$ python3 -m venv $PWD/tmp/python3
+
+# Load virtual env vars
+$ source $PWD/tmp/python3/bin/activate
+# Install dependencies
+> python -m pip install -e .
+
+> python -m dahlia -h
+```
+
+## Documents
+
+- [ORM Quick Start](https://docs.sqlalchemy.org/en/20/orm/quickstart.html)

+ 28 - 0
sutta-pitaka-importer/pyproject.toml

@@ -0,0 +1,28 @@
+[project]
+name = "dahlia"
+version = "2026.5.8"
+authors = [
+    { name = "Visuddhinanda", email = "visuddhinanda@gmail.com" },
+    { name = "Kassapa", email = "ven.kassapa@qq.com" },
+]
+description = "A rbac service"
+readme = "README.md"
+requires-python = ">=3.14"
+classifiers = [
+    "Programming Language :: Python :: 3",
+    "Operating System :: OS Independent",
+]
+license = "MIT"
+dependencies = [
+    "SQLAlchemy",
+    "psycopg[binary,pool]",
+    "mysql-connector-python",
+    "langchain",
+]
+
+[project.urls]
+Homepage = "https://github.com/iapt-platform/mint/tree/master/sutta-pitaka-importer"
+Issues = "https://github.com/iapt-platform/mint/issues"
+
+[project.scripts]
+dahlia = "dahlia:main"

+ 49 - 0
sutta-pitaka-importer/src/dahlia/__init__.py

@@ -0,0 +1,49 @@
+import logging
+import argparse
+import tomllib
+import signal
+import threading
+from concurrent import futures
+from time import sleep
+
+from sqlalchemy import create_engine
+
+from . import yuanhengsi, zhuangchunjiang
+
+
+logger = logging.getLogger(__name__)
+
+
+def main():
+    parser = argparse.ArgumentParser(description="A rbac service(gRPC).")
+    parser.add_argument('-c', '--config', default='config.toml')
+    parser.add_argument('-y', '--yuanhengsi', help="元亨寺's data folder")
+    parser.add_argument('-z', '--zhuangchunjiang', help="庄春江工作站's data folder")
+    parser.add_argument('-d', '--debug',
+                        action='store_true', help='run on debug mode')
+    parser.add_argument('-v', '--verbose',
+                        action='version', version='2026.5.8')
+    args = parser.parse_args()
+    logging.basicConfig(
+        format='%(asctime)s %(levelname).1s %(message)s', level=logging.DEBUG if args.debug else logging.INFO)
+    logger.debug("running on debug mode")
+
+    logger.debug("load configuration from %s", args.config)
+    with open(args.config, "rb") as file:
+        config = tomllib.load(file)
+        db = open_db(config['postgresql'], args.debug)
+        if args.zhuangchunjiang is not None:
+            zhuangchunjiang.launch(db, args.zhuangchunjiang)
+        if args.yuanhengsi is not None:
+            yuanhengsi.launch(db, args.yuanhengsi)
+        logging.info('done.')
+
+
+# https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#dialect-postgresql-psycopg-connect
+# https://docs.sqlalchemy.org/en/20/dialects/mysql.html#module-sqlalchemy.dialects.mysql.mariadbconnector
+# https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#module-sqlalchemy.dialects.sqlite.pysqlite
+def open_db(config, debug):
+    logger.debug("open postgresql://%s@%s:%d/%s",
+                 config['user'], config['host'], config['port'], config['db-name'])
+    return create_engine(
+        f"postgresql+psycopg://{config['user']}:{config['password']}@{config['host']}:{config['port']}/{config['db-name']}?sslmode=disable", echo=debug)

+ 4 - 0
sutta-pitaka-importer/src/dahlia/__main__.py

@@ -0,0 +1,4 @@
+from . import main
+
+if __name__ == '__main__':
+    main()

+ 9 - 0
sutta-pitaka-importer/src/dahlia/yuanhengsi/__init__.py

@@ -0,0 +1,9 @@
+import logging
+
+
+logger = logging.getLogger(__name__)
+
+
+def launch(db, folder):
+    logger.info("load 元亨寺 from %s", folder)
+    # TODO

+ 9 - 0
sutta-pitaka-importer/src/dahlia/zhuangchunjiang/__init__.py

@@ -0,0 +1,9 @@
+import logging
+
+
+logger = logging.getLogger(__name__)
+
+
+def launch(db, folder):
+    logger.info("load 庄春江工作站 from %s", folder)
+    # TODO