Package: shihua-fiche
Fiche-元数据信息管理工具介绍Fiche是一个元数据信息管理工具，主要功能提供元数据信息的管理，包括算法信息、模型信息、参数信息、应用信息和数据信息五大类信息；主要设计采用将信息卡片化，存储为一个个json字符串文档，采用主从推送模型实现观察者模式，便于信息中心化；主要技术采用MongoDB作为后端信息数据的中心存储，基于FastAPI实现的http服务使得该工具提供python-sdk的同时也与语言无关。安装fiche采用Python开发，得益于Python良好的社区环境，安装支持Pythonic风格的各种管理器。$ pip install fiche-0.1-xxxxxxxxxxxx.whl快速指南服务端使用对于服务端数据服务启动，使用fiche命令开启后台服务。注意，后端mongodb的配置需要在安装包内的fiche_config.yaml中配置。以下是fichectl命令行示例：$fichectlstart-service客户端使用对于客户端，fiche支持http协议的接口和python-sdk两种方式。http接口使用
1.添加观察者$curlhttp://127.0.0.1:11811/observer/add_observer?observer_name=test007&observer_version=v0072.查询观察者$curlhttp://127.0.0.1:11811/observer/add_observer?observer_name=test007&observer_version=v00763.删除观察者$curlhttp://127.0.0.1:11811/observer/remove_observer?observer_name=test004&observer_version=v0044.保存算法信息$curlhttp://127.0.0.1:11811/info_manager/save_algorithm_info?name=test007&version=v007&summary=test&config=test&remark=test&homepage=test&author=shihua&authoremail=150214087952163.com&license=MIT&requires=numpy,tensorflow&requiredby=wpfsystem5.查询算法信息$curlhttp://127.0.0.1:11811/info_manager/query_algorithm_info?algorithm_name=test007&algorithm_version=v0076.保存模型信息$curlhttp://127.0.0.1:11811/info_manager/save_model_info?name=test007&version=v007&summary=test&config=test&remark=test&requires=test&data=test&algorithm=test0057.查询模型信息$curlhttp://127.0.0.1:11811/info_manager/query_model_info?model_name=test007&model_version=v0078.保存参数信息$curlhttp://127.0.0.1:11811/info_manager/save_parameter_info?name=test007&version=v007&summary=test&config=test&remark=test&datatype=test&requiredby=wpfsystem9.查询参数信息$curlhttp://127.0.0.1:11811/info_manager/query_parameter_info?parameter_name=test007&parameter_version=v00710.保存应用信息$curlhttp://127.0.0.1:11811/info_manager/save_application_info?name=test007&version=v007&summary=test&config=test&remark=test&requires=test&project=wpfsystem11.查询应用信息$curlhttp://127.0.0.1:11811/info_manager/query_application_info?application_name=test007&application_version=v00712.保存数据信息$curlhttp://127.0.0.1:11811/info_manager/save_dataset_info?name=test007&version=v007&summary=test&config=test&remark=test&requiredby=wpfsystem&datatype=test&project=test13.查询数据信息$curlhttp://127.0.0.1:11811/info_manager/query_dataset_info?dataset_name=test007&dataset_version=v007python-sdk使用,以下是fiche主程脚本代码示例：fromfiche.dataimport*fiche=FicheData(host='192.168.0.111',port=27017,username='admin',password='123456',database='fiche')### 增加观察者fiche.add_observer(observer_name='test008',observer_version='v008')# fiche.add_observer(observer_name='test002',observer_version='v002')# fiche.add_observer(observer_name='test_remove',observer_version='test_remove001')### 查询观察者tmp_observer_info_query=fiche.query_observer_info(observer_name='test007',observer_version='v007')print(tmp_observer_info_query)### 获取观察者列表tmp_observers_list=fiche.show_obervers()print(tmp_observers_list)### 删除观察者fiche.remove_observer(observer_name='test',observer_version='001')## 保存算法信息fiche.save_algorithm_info(name='test008',version='v008',summary='this is a test algorithm package',config='bash xxxxx.sh',remark='test algorithm remark',homepage='xxx.xxx.xxx.xxx/xxxx',author='shihua',authoremail='15021408795@163.com',license='MIT',requires='numpy,sklearn,tensorflow',requiredby='WPFsystem')### 查询算法信息tmp_algorithm_info_query=fiche.query_algorithm_info(algorithm_name='test008',algorithm_version='v008')print(tmp_algorithm_info_query)### 保存模型信息fiche.save_model_info(name='test008',version='v008',summary='this is a test model',config='bash xxxxxxx.sh',remark='test model remark',requires='test',data='test data set',algorithm='test algorithm')### 查询模型信息tmp_model_info_query=fiche.query_model_info(model_name='test008',model_version='v008')print(tmp_model_info_query)### 保存参数信息fiche.save_parameter_info(name='test008',version='v008',summary='this is a test parameter',config='bash xxxxxxxxxxx.sh',remark='test parameter remark',datatype='test datatype',requiredby='test model')### 查询参数信息tmp_parameter_info_query=fiche.query_parameter_info(parameter_name='test008',parameter_version='v008')print(tmp_parameter_info_query)### 保存应用信息fiche.save_application_info(name='test008',version='v008',summary='this is a test application',config='bash xxxxxxxxxxxxx.sh',remark='test application remark',requires='xxx algorithm,xxxxx data',project='wpf system')### 查询应用信息tmp_application_info_query=fiche.query_application_info(application_name='test008',application_version='v008')print(tmp_application_info_query)### 保存数据信息fiche.save_dataset_info(name='test008',version='v008',summary='this is a test dataset',config='bash xxxxxxxxxxxxx.sh',remark='test dataset',requiredby='test model,test application',datatype='test datatype',project='pv system')### 查询数据信息tmp_dataset_info_query=fiche.query_dataset_info(dataset_name='test008',dataset_version='v008')print(tmp_dataset_info_query)设计采用推送模型的观察者模式服务端使用HTTP协议构建操作服务信息卡片化，中心化MongoDB文档型存储技术列表元编程技术-type元类技术元编程技术-__getattr__技术元编程技术-__setattr__技术元编程技术-__new__技术微服务-FastAPI配置文件-yaml技术数据库-MongoDB设计模式-观察者模式设计UML图以下是设计的UML图：