hjxdl 0.1.65__py3-none-any.whl → 0.1.67__py3-none-any.whl
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.
- hdl/_version.py +2 -2
- hdl/utils/llm/vis.py +64 -0
- {hjxdl-0.1.65.dist-info → hjxdl-0.1.67.dist-info}/METADATA +2 -1
- {hjxdl-0.1.65.dist-info → hjxdl-0.1.67.dist-info}/RECORD +6 -6
- {hjxdl-0.1.65.dist-info → hjxdl-0.1.67.dist-info}/WHEEL +0 -0
- {hjxdl-0.1.65.dist-info → hjxdl-0.1.67.dist-info}/top_level.txt +0 -0
    
        hdl/_version.py
    CHANGED
    
    
    
        hdl/utils/llm/vis.py
    CHANGED
    
    | @@ -1,11 +1,14 @@ | |
| 1 1 | 
             
            from pathlib import Path
         | 
| 2 2 | 
             
            import json
         | 
| 3 | 
            +
            import base64
         | 
| 4 | 
            +
            from io import BytesIO
         | 
| 3 5 |  | 
| 4 6 | 
             
            import torch
         | 
| 5 7 | 
             
            import numpy as np
         | 
| 6 8 | 
             
            from PIL import Image
         | 
| 7 9 | 
             
            # from transformers import ChineseCLIPProcessor, ChineseCLIPModel
         | 
| 8 10 | 
             
            import open_clip
         | 
| 11 | 
            +
            import natsort
         | 
| 9 12 |  | 
| 10 13 | 
             
            from ..database_tools.connect import conn_redis
         | 
| 11 14 |  | 
| @@ -16,6 +19,40 @@ __all__ = [ | |
| 16 19 |  | 
| 17 20 | 
             
            HF_HUB_PREFIX = "hf-hub:"
         | 
| 18 21 |  | 
| 22 | 
            +
             | 
| 23 | 
            +
            def imgfile_to_base64(img_dir: str):
         | 
| 24 | 
            +
                """Converts an image file to base64 format.
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                Args:
         | 
| 27 | 
            +
                    img_dir (str): The directory path of the image file.
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                Returns:
         | 
| 30 | 
            +
                    str: The image file converted to base64 format.
         | 
| 31 | 
            +
                """
         | 
| 32 | 
            +
                with open(img_dir, 'rb') as file:
         | 
| 33 | 
            +
                    img_base64 = "data:image/jpeg;base64," + base64.b64encode(
         | 
| 34 | 
            +
                        file.read()
         | 
| 35 | 
            +
                    ).decode('utf-8')
         | 
| 36 | 
            +
                return img_base64
         | 
| 37 | 
            +
             | 
| 38 | 
            +
             | 
| 39 | 
            +
            def imgbase64_to_pilimg(img_base64: str):
         | 
| 40 | 
            +
                """Converts a base64 encoded image to a PIL image.
         | 
| 41 | 
            +
             | 
| 42 | 
            +
                Args:
         | 
| 43 | 
            +
                    img_base64 (str): Base64 encoded image string.
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                Returns:
         | 
| 46 | 
            +
                    PIL.Image: A PIL image object.
         | 
| 47 | 
            +
                """
         | 
| 48 | 
            +
                img_pil = Image.open(
         | 
| 49 | 
            +
                    BytesIO(
         | 
| 50 | 
            +
                        base64.b64decode(img_base64.split(",")[-1])
         | 
| 51 | 
            +
                    )
         | 
| 52 | 
            +
                )
         | 
| 53 | 
            +
                return img_pil
         | 
| 54 | 
            +
             | 
| 55 | 
            +
             | 
| 19 56 | 
             
            class ImgHandler:
         | 
| 20 57 | 
             
                def __init__(
         | 
| 21 58 | 
             
                    self,
         | 
| @@ -203,4 +240,31 @@ class ImgHandler: | |
| 203 240 | 
             
                        # > 0.9 很相似
         | 
| 204 241 | 
             
                        return sims
         | 
| 205 242 |  | 
| 243 | 
            +
                def vec_pics_todb(self, images):
         | 
| 244 | 
            +
                    """Save image features to a Redis database.
         | 
| 245 | 
            +
             | 
| 246 | 
            +
                    Args:
         | 
| 247 | 
            +
                        images (list): A list of image file paths.
         | 
| 248 | 
            +
             | 
| 249 | 
            +
                    Returns:
         | 
| 250 | 
            +
                        None
         | 
| 251 | 
            +
             | 
| 252 | 
            +
                    Example:
         | 
| 253 | 
            +
                        vec_pics_todb(images=['image1.jpg', 'image2.jpg'])
         | 
| 254 | 
            +
                    """
         | 
| 255 | 
            +
                    sorted_imgs = natsort.natsorted(images)
         | 
| 256 | 
            +
                    img_feats = self.get_img_features(sorted_imgs, to_numpy=True)
         | 
| 257 | 
            +
                    pipeline = self.ih.db_conn.pipeline()
         | 
| 258 | 
            +
                    for img_file, emb in zip(sorted_imgs, img_feats):
         | 
| 259 | 
            +
                        # 初始化 Redis,先使用 img 文件名作为 Key 和 Value,后续再更新为图片特征向量
         | 
| 260 | 
            +
                        # pipeline.json().set(img_file, "$", img_file)
         | 
| 261 | 
            +
                        emb = emb.astype(np.float32).tolist()
         | 
| 262 | 
            +
                        emb_json = {
         | 
| 263 | 
            +
                            "emb": emb,
         | 
| 264 | 
            +
                            "data": imgfile_to_base64(img_file)
         | 
| 265 | 
            +
                        }
         | 
| 266 | 
            +
                        pipeline.json().set(img_file, "$", emb_json)
         | 
| 267 | 
            +
                        res = pipeline.execute()
         | 
| 268 | 
            +
                        print('redis set:', res)
         | 
| 269 | 
            +
             | 
| 206 270 |  | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            Metadata-Version: 2.1
         | 
| 2 2 | 
             
            Name: hjxdl
         | 
| 3 | 
            -
            Version: 0.1. | 
| 3 | 
            +
            Version: 0.1.67
         | 
| 4 4 | 
             
            Summary: A collection of functions for Jupyter notebooks
         | 
| 5 5 | 
             
            Home-page: https://github.com/huluxiaohuowa/hdl
         | 
| 6 6 | 
             
            Author: Jianxing Hu
         | 
| @@ -23,6 +23,7 @@ Requires-Dist: redis[hiredis] | |
| 23 23 | 
             
            Requires-Dist: psycopg[binary]
         | 
| 24 24 | 
             
            Requires-Dist: Pillow
         | 
| 25 25 | 
             
            Requires-Dist: open-clip-torch
         | 
| 26 | 
            +
            Requires-Dist: natsort
         | 
| 26 27 |  | 
| 27 28 | 
             
            # DL framework by Jianxing
         | 
| 28 29 |  | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            hdl/__init__.py,sha256=GffnD0jLJdhkd-vo989v40N90sQbofkayRBwxc6TVhQ,72
         | 
| 2 | 
            -
            hdl/_version.py,sha256= | 
| 2 | 
            +
            hdl/_version.py,sha256=FcaV_ACOb2e682h3wmnM4BoU2t4Y9YegpmtQ5bKxxNg,413
         | 
| 3 3 | 
             
            hdl/args/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| 4 4 | 
             
            hdl/args/loss_args.py,sha256=s7YzSdd7IjD24rZvvOrxLLFqMZQb9YylxKeyelSdrTk,70
         | 
| 5 5 | 
             
            hdl/controllers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| @@ -131,12 +131,12 @@ hdl/utils/llm/chat.py,sha256=sk7Lw5Oa30k-l2fnJknkMmTc5zkBeEKsR981aeFhH5s,11907 | |
| 131 131 | 
             
            hdl/utils/llm/embs.py,sha256=Tf0FOYrOFZp7qQpEPiSCXzlgyHH0X9HVTUtsup74a9E,7174
         | 
| 132 132 | 
             
            hdl/utils/llm/extract.py,sha256=2sK_WJzmYIc8iuWaM9DA6Nw3_6q1O4lJ5pKpcZo-bBA,6512
         | 
| 133 133 | 
             
            hdl/utils/llm/llama_chat.py,sha256=watcHGOaz-bv3x-yDucYlGk5f8FiqfFhwWogrl334fk,4387
         | 
| 134 | 
            -
            hdl/utils/llm/vis.py,sha256= | 
| 134 | 
            +
            hdl/utils/llm/vis.py,sha256=dkrSWZJcnLFy5ZmT8aDTy2EdvfzWbYOwDjUL47BbmxI,8547
         | 
| 135 135 | 
             
            hdl/utils/schedulers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| 136 136 | 
             
            hdl/utils/schedulers/norm_lr.py,sha256=bDwCmdEK-WkgxQMFBiMuchv8Mm7C0-GZJ6usm-PQk14,4461
         | 
| 137 137 | 
             
            hdl/utils/weather/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
         | 
| 138 138 | 
             
            hdl/utils/weather/weather.py,sha256=k11o6wM15kF8b9NMlEfrg68ak-SfSYLN3nOOflFUv-I,4381
         | 
| 139 | 
            -
            hjxdl-0.1. | 
| 140 | 
            -
            hjxdl-0.1. | 
| 141 | 
            -
            hjxdl-0.1. | 
| 142 | 
            -
            hjxdl-0.1. | 
| 139 | 
            +
            hjxdl-0.1.67.dist-info/METADATA,sha256=dxyZsd_-4xjvQ6k6WZcaxsxYI6gJzQ38iO2CAFZf2OY,903
         | 
| 140 | 
            +
            hjxdl-0.1.67.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
         | 
| 141 | 
            +
            hjxdl-0.1.67.dist-info/top_level.txt,sha256=-kxwTM5JPhylp06z3zAVO3w6_h7wtBfBo2zgM6YZoTk,4
         | 
| 142 | 
            +
            hjxdl-0.1.67.dist-info/RECORD,,
         | 
| 
            File without changes
         | 
| 
            File without changes
         |