From 1ed458c77a73ba14baeff19e6ce3912a3b775f13 Mon Sep 17 00:00:00 2001 From: clara-sq Date: Wed, 18 Sep 2024 13:57:35 +0000 Subject: [PATCH 1/5] test:use docker for push and test branch --- Dockerfile | 78 +++++++++++++++++++++++++++--------------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/Dockerfile b/Dockerfile index ef625371..1957eb9b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,39 +1,39 @@ -# Stage 1: Build the frontend -FROM node:latest as frontend-builder - -# Set the working directory -WORKDIR /app - -# Install frontent dependencies -COPY geochemistrypi/frontend/package.json /app/ -RUN yarn install - -# Stage 2: Build the backend -FROM python:3.9-slim AS backend-builder - -# Set the working directory -WORKDIR /app - -# Install backend dependencies -COPY requirements/production.txt /app/ -RUN pip install -r production.txt - -# Special case for Debian OS, update package lists and install Git and Node.js -RUN apt-get update && apt-get install -y libgomp1 git -RUN apt-get update && apt-get install -y nodejs -RUN apt-get update && apt-get install -y npm - -# Install Yarn -RUN npm install -g yarn - -# Copy the rest of the code -COPY . . - -# Expose the port -EXPOSE 8000 3001 - -# Mount the volume -VOLUME /app - -# Dummy CMD to prevent container from exiting immediately -CMD ["tail", "-f", "/dev/null"] +# Stage 1: Build the frontend +FROM node:latest as frontend-builder + +# Set the working directory +WORKDIR /app + +# Install frontent dependencies +COPY geochemistrypi/frontend/package.json /app/ +RUN yarn install + +# Stage 2: Build the backend +FROM python:3.9-slim AS backend-builder + +# Set the working directory +WORKDIR /app + +# Install backend dependencies +COPY requirements/production.txt /app/ +RUN pip install -r production.txt + +# Special case for Debian OS, update package lists and install Git and Node.js +RUN apt-get update && apt-get install -y libgomp1 git +RUN apt-get update && apt-get install -y nodejs +RUN apt-get update && apt-get install -y npm + +# Install Yarn +RUN npm install -g yarn + +# Copy the rest of the code +COPY . . + +# Expose the port +EXPOSE 8000 3001 + +# Mount the volume +VOLUME /app +# test test test +# Dummy CMD to prevent container from exiting immediately +CMD ["tail", "-f", "/dev/null"] From 660de67b65692b5fcaf5f2d7e17b3f274cf5c979 Mon Sep 17 00:00:00 2001 From: clara-sq Date: Wed, 18 Sep 2024 14:28:18 +0000 Subject: [PATCH 2/5] refactor:replace code with enum class --- Dockerfile | 2 +- .../data_mining/model/clustering.py | 43 +++++++++++-------- .../data_mining/model/decomposition.py | 27 ++++++------ .../model/func/algo_clustering/_enum.py | 4 ++ .../model/func/algo_decomposition/_enum.py | 3 ++ 5 files changed, 49 insertions(+), 30 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1957eb9b..dd2fdcf9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -34,6 +34,6 @@ EXPOSE 8000 3001 # Mount the volume VOLUME /app -# test test test + # Dummy CMD to prevent container from exiting immediately CMD ["tail", "-f", "/dev/null"] diff --git a/geochemistrypi/data_mining/model/clustering.py b/geochemistrypi/data_mining/model/clustering.py index 109da3a1..e646d548 100644 --- a/geochemistrypi/data_mining/model/clustering.py +++ b/geochemistrypi/data_mining/model/clustering.py @@ -80,43 +80,45 @@ def _score(data: pd.DataFrame, labels: pd.Series, func_name: str, algorithm_name mlflow.log_metrics(scores) @staticmethod - def _scatter2d(data: pd.DataFrame, labels: pd.Series, name_column: str, cluster_centers_: pd.DataFrame, algorithm_name: str, local_path: str, mlflow_path: str) -> None: + def _scatter2d(data: pd.DataFrame, labels: pd.Series, name_column: str, cluster_centers_: pd.DataFrame, algorithm_name: str, local_path: str, mlflow_path: str, grah_name: str) -> None: """Plot the two-dimensional diagram of the clustering result.""" - print("-----* Cluster Two-Dimensional Diagram *-----") + print(f"-----* {grah_name} *-----") scatter2d(data, labels, cluster_centers_, algorithm_name) - save_fig(f"Cluster Two-Dimensional Diagram - {algorithm_name}", local_path, mlflow_path) + save_fig(f"{grah_name} - {algorithm_name}", local_path, mlflow_path) data_with_labels = pd.concat([data, labels], axis=1) - save_data(data_with_labels, name_column, f"Cluster Two-Dimensional Diagram - {algorithm_name}", local_path, mlflow_path) + save_data(data_with_labels, name_column, f"{grah_name} - {algorithm_name}", local_path, mlflow_path) @staticmethod - def _scatter3d(data: pd.DataFrame, labels: pd.Series, name_column: str, algorithm_name: str, local_path: str, mlflow_path: str) -> None: + def _scatter3d(data: pd.DataFrame, labels: pd.Series, name_column: str, algorithm_name: str, local_path: str, mlflow_path: str, grah_name: str) -> None: """Plot the three-dimensional diagram of the clustering result.""" - print("-----* Cluster Three-Dimensional Diagram *-----") + print(f"-----* {grah_name} *-----") scatter3d(data, labels, algorithm_name) - save_fig(f"Cluster Three-Dimensional Diagram - {algorithm_name}", local_path, mlflow_path) + save_fig(f"{grah_name} - {algorithm_name}", local_path, mlflow_path) data_with_labels = pd.concat([data, labels], axis=1) - save_data(data_with_labels, name_column, f"Cluster Two-Dimensional Diagram - {algorithm_name}", local_path, mlflow_path) + save_data(data_with_labels, name_column, f"{grah_name} - {algorithm_name}", local_path, mlflow_path) @staticmethod - def _plot_silhouette_diagram(data: pd.DataFrame, labels: pd.Series, name_column: str, model: object, cluster_centers_: np.ndarray, algorithm_name: str, local_path: str, mlflow_path: str) -> None: + def _plot_silhouette_diagram( + data: pd.DataFrame, labels: pd.Series, name_column: str, model: object, cluster_centers_: np.ndarray, algorithm_name: str, local_path: str, mlflow_path: str, grah_name: str + ) -> None: """Plot the silhouette diagram of the clustering result.""" - print("-----* Silhouette Diagram *-----") + print(f"-----* {grah_name} *-----") plot_silhouette_diagram(data, labels, cluster_centers_, model, algorithm_name) - save_fig(f"Silhouette Diagram - {algorithm_name}", local_path, mlflow_path) + save_fig(f"{grah_name} - {algorithm_name}", local_path, mlflow_path) data_with_labels = pd.concat([data, labels], axis=1) - save_data(data_with_labels, name_column, "Silhouette Diagram - Data With Labels", local_path, mlflow_path) + save_data(data_with_labels, name_column, f"{grah_name} - Data With Labels", local_path, mlflow_path) if not isinstance(cluster_centers_, str): cluster_center_data = pd.DataFrame(cluster_centers_, columns=data.columns) - save_data(cluster_center_data, name_column, "Silhouette Diagram - Cluster Centers", local_path, mlflow_path) + save_data(cluster_center_data, name_column, f"{grah_name} - Cluster Centers", local_path, mlflow_path) @staticmethod - def _plot_silhouette_value_diagram(data: pd.DataFrame, labels: pd.Series, name_column: str, algorithm_name: str, local_path: str, mlflow_path: str) -> None: + def _plot_silhouette_value_diagram(data: pd.DataFrame, labels: pd.Series, name_column: str, algorithm_name: str, local_path: str, mlflow_path: str, grah_name: str) -> None: """Plot the silhouette value diagram of the clustering result.""" - print("-----* Silhouette value Diagram *-----") + print(f"-----* {grah_name} *-----") plot_silhouette_value_diagram(data, labels, algorithm_name) - save_fig(f"Silhouette value Diagram - {algorithm_name}", local_path, mlflow_path) + save_fig(f"{grah_name} - {algorithm_name}", local_path, mlflow_path) data_with_labels = pd.concat([data, labels], axis=1) - save_data(data_with_labels, name_column, "Silhouette value Diagram - Data With Labels", local_path, mlflow_path) + save_data(data_with_labels, name_column, f"{grah_name} - Data With Labels", local_path, mlflow_path) def common_components(self) -> None: """Invoke all common application functions for clustering algorithms.""" @@ -157,6 +159,7 @@ def common_components(self) -> None: algorithm_name=self.naming, local_path=GEOPI_OUTPUT_ARTIFACTS_IMAGE_MODEL_OUTPUT_PATH, mlflow_path=MLFLOW_ARTIFACT_IMAGE_MODEL_OUTPUT_PATH, + grah_name=ClusteringCommonFunction.CLUSTER_TWO_DIMENSIONAL_DIAGRAM.value, ) # choose three of dimensions to draw @@ -168,6 +171,7 @@ def common_components(self) -> None: algorithm_name=self.naming, local_path=GEOPI_OUTPUT_ARTIFACTS_IMAGE_MODEL_OUTPUT_PATH, mlflow_path=MLFLOW_ARTIFACT_IMAGE_MODEL_OUTPUT_PATH, + grah_name=ClusteringCommonFunction.CLUSTER_THREE_DIMENSIONAL_DIAGRAM.value, ) elif self.X.shape[1] == 3: # choose two of dimensions to draw @@ -180,6 +184,7 @@ def common_components(self) -> None: algorithm_name=self.naming, local_path=GEOPI_OUTPUT_ARTIFACTS_IMAGE_MODEL_OUTPUT_PATH, mlflow_path=MLFLOW_ARTIFACT_IMAGE_MODEL_OUTPUT_PATH, + grah_name=ClusteringCommonFunction.CLUSTER_TWO_DIMENSIONAL_DIAGRAM.value, ) # no need to choose @@ -190,6 +195,7 @@ def common_components(self) -> None: algorithm_name=self.naming, local_path=GEOPI_OUTPUT_ARTIFACTS_IMAGE_MODEL_OUTPUT_PATH, mlflow_path=MLFLOW_ARTIFACT_IMAGE_MODEL_OUTPUT_PATH, + grah_name=ClusteringCommonFunction.CLUSTER_THREE_DIMENSIONAL_DIAGRAM.value, ) elif self.X.shape[1] == 2: self._scatter2d( @@ -200,6 +206,7 @@ def common_components(self) -> None: algorithm_name=self.naming, local_path=GEOPI_OUTPUT_ARTIFACTS_IMAGE_MODEL_OUTPUT_PATH, mlflow_path=MLFLOW_ARTIFACT_IMAGE_MODEL_OUTPUT_PATH, + grah_name=ClusteringCommonFunction.CLUSTER_TWO_DIMENSIONAL_DIAGRAM.value, ) else: pass @@ -213,6 +220,7 @@ def common_components(self) -> None: algorithm_name=self.naming, local_path=GEOPI_OUTPUT_ARTIFACTS_IMAGE_MODEL_OUTPUT_PATH, mlflow_path=MLFLOW_ARTIFACT_IMAGE_MODEL_OUTPUT_PATH, + grah_name=ClusteringCommonFunction.SILHOUETTE_DIAGRAM.value, ) self._plot_silhouette_value_diagram( data=self.X, @@ -221,6 +229,7 @@ def common_components(self) -> None: algorithm_name=self.naming, local_path=GEOPI_OUTPUT_ARTIFACTS_IMAGE_MODEL_OUTPUT_PATH, mlflow_path=MLFLOW_ARTIFACT_IMAGE_MODEL_OUTPUT_PATH, + grah_name=ClusteringCommonFunction.SILHOUETTE_VALUE_DIAGRAM.value, ) diff --git a/geochemistrypi/data_mining/model/decomposition.py b/geochemistrypi/data_mining/model/decomposition.py index 95e60d74..c1cd8a26 100644 --- a/geochemistrypi/data_mining/model/decomposition.py +++ b/geochemistrypi/data_mining/model/decomposition.py @@ -67,28 +67,28 @@ def _reduced_data2pd(self, reduced_data: np.ndarray, components_num: int) -> Non self.X_reduced.columns = pa_name @staticmethod - def _plot_2d_scatter_diagram(data: pd.DataFrame, name_column: str, algorithm_name: str, local_path: str, mlflow_path: str) -> None: + def _plot_2d_scatter_diagram(data: pd.DataFrame, name_column: str, algorithm_name: str, local_path: str, mlflow_path: str, grah_name: str) -> None: """Plot the two-dimensional diagram of the decomposition result.""" - print("-----* Decomposition Two-Dimensional Diagram *-----") + print(f"-----* {grah_name} *-----") plot_2d_scatter_diagram(data, algorithm_name) - save_fig(f"Decomposition Two-Dimensional Diagram - {algorithm_name}", local_path, mlflow_path) - save_data(data, name_column, f"Decomposition Two-Dimensional Data - {algorithm_name}", local_path, mlflow_path) + save_fig(f"{grah_name} - {algorithm_name}", local_path, mlflow_path) + save_data(data, name_column, f"{grah_name} - {algorithm_name}", local_path, mlflow_path) @staticmethod - def _plot_heatmap(data: pd.DataFrame, name_column: str, algorithm_name: str, local_path: str, mlflow_path: str) -> None: + def _plot_heatmap(data: pd.DataFrame, name_column: str, algorithm_name: str, local_path: str, mlflow_path: str, grah_name: str) -> None: """Plot a heatmap for the decomposition result.""" - print("-----* Decomposition Heatmap *-----") + print(f"-----* {grah_name} *-----") plot_heatmap(data, algorithm_name) - save_fig(f"Decomposition Heatmap - {algorithm_name}", local_path, mlflow_path) - save_data(data, name_column, f"Decomposition Heatmap Data - {algorithm_name}", local_path, mlflow_path) + save_fig(f"{grah_name} - {algorithm_name}", local_path, mlflow_path) + save_data(data, name_column, f"{grah_name} - {algorithm_name}", local_path, mlflow_path) @staticmethod - def _plot_contour(data: pd.DataFrame, name_column: str, algorithm_name: str, local_path: str, mlflow_path: str) -> None: + def _plot_contour(data: pd.DataFrame, name_column: str, algorithm_name: str, local_path: str, mlflow_path: str, grah_name: str) -> None: """Plot a contour plot for dimensionality reduction results.""" - print("-----* Dimensionality Reduction Contour Plot *-----") + print(f"-----* {grah_name} *-----") plot_contour(data, algorithm_name) - save_fig(f"Dimensionality Reduction Contour Plot - {algorithm_name}", local_path, mlflow_path) - save_data(data, name_column, f"Dimensionality Reduction Contour Plot Data - {algorithm_name}", local_path, mlflow_path) + save_fig(f"{grah_name} - {algorithm_name}", local_path, mlflow_path) + save_data(data, name_column, f"{grah_name} - {algorithm_name}", local_path, mlflow_path) def common_components(self) -> None: """Invoke all common application functions for decomposition algorithms by Scikit-learn framework.""" @@ -100,6 +100,7 @@ def common_components(self) -> None: algorithm_name=self.naming, local_path=GEOPI_OUTPUT_ARTIFACTS_IMAGE_MODEL_OUTPUT_PATH, mlflow_path=MLFLOW_ARTIFACT_IMAGE_MODEL_OUTPUT_PATH, + grah_name=DecompositionCommonFunction.DECOMPOSITION_TWO_DIMENSIONAL_DIAGRAM.value, ) self._plot_heatmap( data=self.X, @@ -107,6 +108,7 @@ def common_components(self) -> None: algorithm_name=self.naming, local_path=GEOPI_OUTPUT_ARTIFACTS_IMAGE_MODEL_OUTPUT_PATH, mlflow_path=MLFLOW_ARTIFACT_IMAGE_MODEL_OUTPUT_PATH, + grah_name=DecompositionCommonFunction.DECOMPOSITION_HEATMAP.value, ) self._plot_contour( data=self.X, @@ -114,6 +116,7 @@ def common_components(self) -> None: algorithm_name=self.naming, local_path=GEOPI_OUTPUT_ARTIFACTS_IMAGE_MODEL_OUTPUT_PATH, mlflow_path=MLFLOW_ARTIFACT_IMAGE_MODEL_OUTPUT_PATH, + grah_name=DecompositionCommonFunction.DIMENSIONALITY_REDUCTION_CONTOUR_PLOT.value, ) diff --git a/geochemistrypi/data_mining/model/func/algo_clustering/_enum.py b/geochemistrypi/data_mining/model/func/algo_clustering/_enum.py index 307a31aa..87b3ba95 100644 --- a/geochemistrypi/data_mining/model/func/algo_clustering/_enum.py +++ b/geochemistrypi/data_mining/model/func/algo_clustering/_enum.py @@ -6,6 +6,10 @@ class ClusteringCommonFunction(Enum): CLUSTER_LABELS = "Cluster Labels" MODEL_PERSISTENCE = "Model Persistence" MODEL_SCORE = "Model Score" + CLUSTER_TWO_DIMENSIONAL_DIAGRAM = "Cluster Two-Dimensional Diagram" + CLUSTER_THREE_DIMENSIONAL_DIAGRAM = "Cluster Three-Dimensional Diagram" + SILHOUETTE_DIAGRAM = "Silhouette Diagram" + SILHOUETTE_VALUE_DIAGRAM = "Silhouette value Diagram" class KMeansSpecialFunction(Enum): diff --git a/geochemistrypi/data_mining/model/func/algo_decomposition/_enum.py b/geochemistrypi/data_mining/model/func/algo_decomposition/_enum.py index 2cc06785..03dd0175 100644 --- a/geochemistrypi/data_mining/model/func/algo_decomposition/_enum.py +++ b/geochemistrypi/data_mining/model/func/algo_decomposition/_enum.py @@ -3,6 +3,9 @@ class DecompositionCommonFunction(Enum): MODEL_PERSISTENCE = "Model Persistence" + DECOMPOSITION_TWO_DIMENSIONAL = "Decomposition Two-Dimensional Diagram" + DECOMPOSITION_HEATMAP = "Decomposition Heatmap" + DIMENSIONALITY_REDUCTION_CONTOUR_PLOT = "Dimensionality Reduction Contour Plot" class PCASpecialFunction(Enum): From 44c4790e636225ed1cc913f5e799d4200cbfee19 Mon Sep 17 00:00:00 2001 From: Panyan Weng Date: Tue, 8 Oct 2024 14:24:46 +0800 Subject: [PATCH 3/5] fix: fix the common functions and special functions formatting of Anomaly detection algorithm --- geochemistrypi/data_mining/model/detection.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/geochemistrypi/data_mining/model/detection.py b/geochemistrypi/data_mining/model/detection.py index 64b049e5..611a6005 100644 --- a/geochemistrypi/data_mining/model/detection.py +++ b/geochemistrypi/data_mining/model/detection.py @@ -20,7 +20,7 @@ class AnomalyDetectionWorkflowBase(WorkflowBase): """The base workflow class of anomaly detection algorithms.""" - # common_function = [] + common_function = [func.value for func in AnormalyDetectionCommonFunction] def __init__(self) -> None: super().__init__() @@ -153,7 +153,7 @@ class IsolationForestAnomalyDetection(AnomalyDetectionWorkflowBase): """The automation workflow of using Isolation Forest algorithm to make insightful products.""" name = "Isolation Forest" - # special_function = [] + special_function = [] def __init__( self, @@ -306,7 +306,8 @@ class LocalOutlierFactorAnomalyDetection(AnomalyDetectionWorkflowBase): """The automation workflow of using Local Outlier Factor algorithm to make insightful products.""" name = "Local Outlier Factor" - # special_function = [] + special_function = [func.value for func in LocalOutlierFactorSpecialFunction] + def __init__( self, From f17269d3d2b14782868752442566f80c648ecc52 Mon Sep 17 00:00:00 2001 From: Panyan Weng Date: Tue, 8 Oct 2024 14:27:44 +0800 Subject: [PATCH 4/5] fix: fix the common functions and special functions formatting of Anomaly detection algorithm --- geochemistrypi/data_mining/model/detection.py | 1 - 1 file changed, 1 deletion(-) diff --git a/geochemistrypi/data_mining/model/detection.py b/geochemistrypi/data_mining/model/detection.py index 611a6005..f162c5f9 100644 --- a/geochemistrypi/data_mining/model/detection.py +++ b/geochemistrypi/data_mining/model/detection.py @@ -308,7 +308,6 @@ class LocalOutlierFactorAnomalyDetection(AnomalyDetectionWorkflowBase): name = "Local Outlier Factor" special_function = [func.value for func in LocalOutlierFactorSpecialFunction] - def __init__( self, n_neighbors: int = 20, From 2e5928f0773f3b911f8a5627cc8f660f64d6fefa Mon Sep 17 00:00:00 2001 From: sanyhe Date: Sun, 13 Oct 2024 20:08:56 +0800 Subject: [PATCH 5/5] docs: update the team info. --- README.md | 27 +++++++++++------ docs/source/Home/Introduction.md | 50 +++++++++++++++++++++----------- 2 files changed, 51 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index b3e30969..b5fdff8d 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ --- -**Documentation**: https://geochemistrypi.readthedocs.io +**Online Documentation**: https://geochemistrypi.readthedocs.io **Source Code**: https://github.com/ZJUEarthData/geochemistrypi @@ -33,6 +33,8 @@ Key features are: Latest Update: follow up by clicking `Starred` and `Watch` on our [GitHub repository](https://github.com/ZJUEarthData/geochemistrypi), then get email notifications of the newest features automatically. +Note: **Chatbot** driven by multi-agent system is available in the right-bottom corner of [Online Documentation](https://geochemistrypi.readthedocs.io) with a blue button. + The following figure is the simplified overview of Geochemistry π:

@@ -293,18 +295,25 @@ The whole package is under construction and the documentation is progressively e ## Team Info -**Leader:** +**Leaders:** + Can He (Sany, National University of Singapore, Singapore) + Duty: Be responsible for the overall development of the project. Email: sanyhew1097618435@163.com ++ Jianming Zhao (Jamie, Zhejiang University, China) + Duty: Head of the technical group. + Email: jmzhao29@gmail.com ++ Yongkang Chan (Kill-virus, Lanzhou University, China) + Duty: Head of the product group. + Email: kk1361207571@163.com ++ Yang Lyu (Daisy, Zhejiang University, China) + Duty: Be responsible for the cloud product. + Email: lyuyang1007@zju.edu.cn **Technical Group:** -+ Jianming Zhao (Jamie, Zhejiang University, China) -+ Jianhao Sun (Jin, China University of Geosciences, Wuhan, China) -+ Yongkang Chan (Kill-virus, Lanzhou University, China) ++ Jianhao Sun (Jin, Nanjing University, China) + Mengying Ye (Mary, Jilin University, China) -+ Mengqi Gao (China University of Geosciences, Beijing, China) + Chengtu Li(Trenki, Henan Polytechnic University, Beijing, China) + Yucheng Yan (Andy, University of Sydney, Australia) + Ruitao Chang (China University of Geosciences Beijing, China) @@ -312,15 +321,15 @@ The whole package is under construction and the documentation is progressively e **Product Group**: -+ Yang Lyu (Daisy, Zhejiang University, China) + Siqi Yao (Clara, Dongguan University of Technology, China) + Zhelan Lin(Lan, Fuzhou University, China) + ShuYi Li (Communication University Of China, Beijing, China) -+ Junbo Wang (China University Of Geosciences, Beijing, China) ++ Junbo Wang (China University of Geosciences, Beijing, China) + Haibin Wang(Watson, University of Sydney, Australia) + Guoqiang Qiu(Elsen, Fuzhou University, China) + Yating Dong (Yetta,Dongguan University of Technology,China) + Haibin Lai (Michael, Southern University of Science and Technology, China) ++ Bailun Jiang (EPSI / Lille University, France) ## Join Us :) @@ -384,6 +393,7 @@ More Videos will be recorded soon. ## Contributors ++ Mengqi Gao (China University of Geosciences, Beijing, China) + Shengxin Wang (Samson, Lanzhou University, China) + Wenyu Zhao (Molly, Zhejiang University, China) + Qiuhao Zhao (Brad, Zhejiang University, China) @@ -400,4 +410,3 @@ More Videos will be recorded soon. + Zhenglin Xu (Garry, Jilin University, China) + Jianing Wang (National University of Singapore, Singapore) + Junchi Liao(Roceda, University of Electronic Science and Technology of China, China) -+ Bailun Jiang (EPSI / Lille University, France) diff --git a/docs/source/Home/Introduction.md b/docs/source/Home/Introduction.md index 55bd1a29..0ae3260a 100644 --- a/docs/source/Home/Introduction.md +++ b/docs/source/Home/Introduction.md @@ -8,16 +8,12 @@ --- -**Documentation**: https://geochemistrypi.readthedocs.io +**Online Documentation**: https://geochemistrypi.readthedocs.io **Source Code**: https://github.com/ZJUEarthData/geochemistrypi --- -# Introduction - -## What it is - Geochemistry π is an **open-sourced highly automated machine learning Python framework** dedicating to build up MLOps level 1 software product for data-driven geochemistry discovery on tabular data. Core capabilities are: @@ -34,6 +30,8 @@ Key features are: Latest Update: follow up by clicking `Starred` and `Watch` on our [GitHub repository](https://github.com/ZJUEarthData/geochemistrypi), then get email notifications of the newest features automatically. +Note: **Chatbot** driven by multi-agent system is available in the right-bottom corner of [Online Documentation](https://geochemistrypi.readthedocs.io) with a blue button. + The following figure is the simplified overview of Geochemistry π:

@@ -60,6 +58,8 @@ Geochemistry π was selected for featuring as an Editor’s Highlight in EOS Eos Website: https://eos.org/editor-highlights/machine-learning-for-geochemists-who-dont-want-to-code. +![Geochemistry pi news](https://github.com/ZJUEarthData/geochemistrypi/assets/47497750/bdd33a31-824a-492e-adcf-e660da4eaf1d) + ## Quick Installation Our software is well tested on **macOS** and **Windows** system with **Python 3.9**. Other systems and Python version are not guranteed. @@ -72,7 +72,7 @@ pip install geochemistrypi Download the latest version to avoid some old version issues, such as dependency downloading. ``` -pip install "geochemistrypi==0.5.0" +pip install "geochemistrypi==0.6.1" ``` One instruction to download on **Jupyter Notebook** or **Google Colab**. @@ -82,7 +82,7 @@ One instruction to download on **Jupyter Notebook** or **Google Colab**. ``` Download the latest version to avoid some old version issues, such as dependency downloading. ``` -!pip install "geochemistrypi==0.5.0" +!pip install "geochemistrypi==0.6.1" ``` Check the downloaded version of our software: @@ -225,8 +225,6 @@ Copy the URL shown on the console into any browser to open the MLflow web interf For more details: Please refer to: -- Manual v1.1.0 for Geochemistry π - Beta [[Tencent Docs]](https://docs.qq.com/pdf/DQ0l5d2xVd2VwcnVW?&u=6868f96d4a384b309036e04e637e367a) | [[Google drive]](https://drive.google.com/file/d/1yryykCyWKM-Sj88fOYbOba6QkB_fu2ws/view?usp=sharing) - - Geochemistry π - Download and Run the Beta Version [[Bilibili]](https://www.bilibili.com/video/BV1UM4y1Q7Ju/?spm_id_from=333.999.0.0&vd_source=27944ab3b73a78970c1a52a5dcbb9140) | [[YouTube]](https://www.youtube.com/watch?v=EeVaJ3H7_AU&list=PLy8hNsI55lvh1UHjhVhqNUj3xPdV9sEiM&index=9) - MLflow UI user guide - Geochemistry π v0.5.0 [[Bilibili]](https://b23.tv/CW5Rjmo) | [[YouTube]](https://www.youtube.com/watch?v=Yu1nzNeLfRY) @@ -234,7 +232,7 @@ For more details: Please refer to: The following screenshot shows the downloads and launching of our software on macOS:

- Downloads and Launching on macOS + Downloads and Launching on macOS

## Roadmap @@ -294,18 +292,25 @@ The whole package is under construction and the documentation is progressively e ## Team Info -**Leader:** +**Leaders:** + Can He (Sany, National University of Singapore, Singapore) + Duty: Be responsible for the overall development of the project. Email: sanyhew1097618435@163.com ++ Jianming Zhao (Jamie, Zhejiang University, China) + Duty: Head of the technical group. + Email: jmzhao29@gmail.com ++ Yongkang Chan (Kill-virus, Lanzhou University, China) + Duty: Head of the product group. + Email: kk1361207571@163.com ++ Yang Lyu (Daisy, Zhejiang University, China) + Duty: Be responsible for the cloud product. + Email: lyuyang1007@zju.edu.cn **Technical Group:** -+ Jianming Zhao (Jamie, Zhejiang University, China) -+ Jianhao Sun (Jin, China University of Geosciences, Wuhan, China) -+ Yongkang Chan (Kill-virus, Lanzhou University, China) ++ Jianhao Sun (Jin, Nanjing University, China) + Mengying Ye (Mary, Jilin University, China) -+ Mengqi Gao (China University of Geosciences, Beijing, China) + Chengtu Li(Trenki, Henan Polytechnic University, Beijing, China) + Yucheng Yan (Andy, University of Sydney, Australia) + Ruitao Chang (China University of Geosciences Beijing, China) @@ -313,15 +318,15 @@ The whole package is under construction and the documentation is progressively e **Product Group**: -+ Yang Lyu (Daisy, Zhejiang University, China) + Siqi Yao (Clara, Dongguan University of Technology, China) + Zhelan Lin(Lan, Fuzhou University, China) + ShuYi Li (Communication University Of China, Beijing, China) -+ Junbo Wang (China University Of Geosciences, Beijing, China) ++ Junbo Wang (China University of Geosciences, Beijing, China) + Haibin Wang(Watson, University of Sydney, Australia) + Guoqiang Qiu(Elsen, Fuzhou University, China) + Yating Dong (Yetta,Dongguan University of Technology,China) + Haibin Lai (Michael, Southern University of Science and Technology, China) ++ Bailun Jiang (EPSI / Lille University, France) ## Join Us :) @@ -385,6 +390,7 @@ More Videos will be recorded soon. ## Contributors ++ Mengqi Gao (China University of Geosciences, Beijing, China) + Shengxin Wang (Samson, Lanzhou University, China) + Wenyu Zhao (Molly, Zhejiang University, China) + Qiuhao Zhao (Brad, Zhejiang University, China) @@ -400,3 +406,13 @@ More Videos will be recorded soon. + Aixiwake·Janganuer (Ayshuak, Sun Yat-sen University, China) + Zhenglin Xu (Garry, Jilin University, China) + Jianing Wang (National University of Singapore, Singapore) ++ Junchi Liao(Roceda, University of Electronic Science and Technology of China, China) +ame University, United States) ++ Xunxin Liu (Tante, China University of Geosciences, Wuhan, China) ++ Fang Li (liv, Shenzhen University, China) ++ Xin Li (The University of Manchester, United Kingdom) ++ Ting Liu (Kira, Sun Yat-sen University, China) ++ Xirui Zhu (Rae, University of York, United Kingdom) ++ Aixiwake·Janganuer (Ayshuak, Sun Yat-sen University, China) ++ Zhenglin Xu (Garry, Jilin University, China) ++ Jianing Wang (National University of Singapore, Singapore)