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
Date: Tue, 20 Jul 2021 15:44:58 +0800
Subject: [PATCH 05/14] add jpg
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 57ef55926..115256766 100755
--- a/README.md
+++ b/README.md
@@ -27,7 +27,7 @@ OpenData 的首要目标是提供对开源数据的大存储支持和管理,
## 3.架构介绍
本项目的开发基于gitea,除gitea本身的功能外,还提供了数据集管理以及算力支持等功能。总体架构如下图所示:
-
+
## 4.使用说明
From 5399b0b513314e583088a3cbb12520ee6da2d5f0 Mon Sep 17 00:00:00 2001
From: lewis <747342561@qq.com>
Date: Tue, 20 Jul 2021 15:45:54 +0800
Subject: [PATCH 06/14] add jpg
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 115256766..57ef55926 100755
--- a/README.md
+++ b/README.md
@@ -27,7 +27,7 @@ OpenData 的首要目标是提供对开源数据的大存储支持和管理,
## 3.架构介绍
本项目的开发基于gitea,除gitea本身的功能外,还提供了数据集管理以及算力支持等功能。总体架构如下图所示:
-
+
## 4.使用说明
From 1821449df29eeaa5c02964d594d16b8574f27ad5 Mon Sep 17 00:00:00 2001
From: lewis <747342561@qq.com>
Date: Tue, 20 Jul 2021 16:24:33 +0800
Subject: [PATCH 07/14] a
---
README.md | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/README.md b/README.md
index 57ef55926..275b56ff4 100755
--- a/README.md
+++ b/README.md
@@ -28,6 +28,8 @@ OpenData 的首要目标是提供对开源数据的大存储支持和管理,
本项目的开发基于gitea,除gitea本身的功能外,还提供了数据集管理以及算力支持等功能。总体架构如下图所示:

+其中,OpenData是本项目的后台服务;云脑提供智能算力服务;文件服务提供内部文件操作服务,如数据集解压缩、查看数据集目录结构等;
+minio提供数据集存储服务。
## 4.使用说明
@@ -36,3 +38,10 @@ OpenData 的首要目标是提供对开源数据的大存储支持和管理,
### 4.1 编译
make build
+
+### 4.2 启动
+./opendata web
+
+## 5.技术选型
+- web框架:Macaron
+- 数据库框架:xorm
From c64d911bd3cb60ffbe1f940da26af547b8526dbf Mon Sep 17 00:00:00 2001
From: ychao_1983
Date: Tue, 31 Aug 2021 09:08:49 +0800
Subject: [PATCH 08/14] =?UTF-8?q?#244#310=E4=B8=BB=E9=A2=98=E6=94=AF?=
=?UTF-8?q?=E6=8C=81=E4=B8=AD=E6=96=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
models/models.go | 2 ++
models/topic.go | 7 ++++---
options/locale/locale_en-US.ini | 2 +-
options/locale/locale_zh-CN.ini | 2 +-
web_src/js/index.js | 6 ++++--
5 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/models/models.go b/models/models.go
index 0e06c60b3..67892399a 100755
--- a/models/models.go
+++ b/models/models.go
@@ -185,6 +185,8 @@ func SetEngine() (err error) {
x.SetMaxOpenConns(setting.Database.MaxOpenConns)
x.SetMaxIdleConns(setting.Database.MaxIdleConns)
x.SetConnMaxLifetime(setting.Database.ConnMaxLifetime)
+ x.Sync2(tables...)
+ MigrateCustom(x)
return nil
}
diff --git a/models/topic.go b/models/topic.go
index 4a5bffa08..b8d3d9d85 100644
--- a/models/topic.go
+++ b/models/topic.go
@@ -8,6 +8,7 @@ import (
"fmt"
"regexp"
"strings"
+ "unicode/utf8"
"code.gitea.io/gitea/modules/timeutil"
@@ -21,12 +22,12 @@ func init() {
)
}
-var topicPattern = regexp.MustCompile(`^[a-z0-9][a-z0-9-]*$`)
+var topicPattern = regexp.MustCompile(`^[\x{4e00}-\x{9fa5}a-z0-9][\x{4e00}-\x{9fa5}a-z0-9-]*$`)
// Topic represents a topic of repositories
type Topic struct {
ID int64
- Name string `xorm:"UNIQUE VARCHAR(25)"`
+ Name string `xorm:"UNIQUE VARCHAR(105)"`
RepoCount int
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
@@ -56,7 +57,7 @@ func (err ErrTopicNotExist) Error() string {
// ValidateTopic checks a topic by length and match pattern rules
func ValidateTopic(topic string) bool {
- return len(topic) <= 35 && topicPattern.MatchString(topic)
+ return utf8.RuneCountInString(topic) <= 35 && topicPattern.MatchString(topic)
}
// SanitizeAndValidateTopics sanitizes and checks an array or topics
diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index 61a233589..56cf564e7 100644
--- a/options/locale/locale_en-US.ini
+++ b/options/locale/locale_en-US.ini
@@ -1815,7 +1815,7 @@ branch.included = Included
topic.manage_topics = Manage Topics
topic.done = Done
topic.count_prompt = You can not select more than 25 topics
-topic.format_prompt = Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
+topic.format_prompt = Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.
[org]
org_name_holder = Organization Name
diff --git a/options/locale/locale_zh-CN.ini b/options/locale/locale_zh-CN.ini
index 89db6536c..31398b927 100755
--- a/options/locale/locale_zh-CN.ini
+++ b/options/locale/locale_zh-CN.ini
@@ -1817,7 +1817,7 @@ branch.included=已包含
topic.manage_topics=管理主题
topic.done=保存
topic.count_prompt=您最多选择25个主题
-topic.format_prompt=主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
+topic.format_prompt=主题必须以汉字、字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
[org]
org_name_holder=组织名称
diff --git a/web_src/js/index.js b/web_src/js/index.js
index 991a13c21..cad60cdc2 100755
--- a/web_src/js/index.js
+++ b/web_src/js/index.js
@@ -4117,7 +4117,9 @@ function initTopicbar() {
topics
.last()
.attr('data-value')
- .match(regExp);
+ .match(regExp) || topics
+ .last()
+ .attr('data-value').length <= 35;
if (!status) {
topics
.last()
@@ -4136,7 +4138,7 @@ function initTopicbar() {
rules: [
{
type: 'validateTopic',
- value: /^[a-z0-9][a-z0-9-]{0,35}$/,
+ value: /^[\u4e00-\u9fa5a-z0-9][\u4e00-\u9fa5a-z0-9-]{0,105}$/,
prompt: topicPrompts.formatPrompt
},
{
From 8e4160840d2afaaaedcda862b2a78c4f2604e6a0 Mon Sep 17 00:00:00 2001
From: ychao_1983
Date: Tue, 31 Aug 2021 09:12:56 +0800
Subject: [PATCH 09/14] #fix-244
---
models/custom_migrations.go | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
create mode 100644 models/custom_migrations.go
diff --git a/models/custom_migrations.go b/models/custom_migrations.go
new file mode 100644
index 000000000..b196c5a8b
--- /dev/null
+++ b/models/custom_migrations.go
@@ -0,0 +1,36 @@
+package models
+
+import (
+ "code.gitea.io/gitea/modules/log"
+ "xorm.io/xorm"
+)
+
+type CustomMigration struct {
+ Description string
+ Migrate func(*xorm.Engine) error
+}
+
+var customMigrations = []CustomMigration{
+ {"Custom v1 Topic struct change to support chinese", syncTopicStruct},
+}
+
+func MigrateCustom(x *xorm.Engine) {
+
+ for _, m := range customMigrations {
+ log.Info("Migration: %s", m.Description)
+ if err := m.Migrate(x); err != nil {
+
+ log.Error("Migration: %v", err)
+
+ }
+ }
+
+}
+
+func syncTopicStruct(x *xorm.Engine) error {
+
+ query := "ALTER TABLE topic ALTER COLUMN name TYPE varchar(105);"
+
+ _, err := x.Exec(query)
+ return err
+}
From 191ff1b4d01ea9e3af13f70f790e5941247b5900 Mon Sep 17 00:00:00 2001
From: avadesian
Date: Tue, 31 Aug 2021 17:30:32 +0800
Subject: [PATCH 10/14] update readme
---
README.md | 58 ++++++++++++++++++++++++++++++++++++-------------------
1 file changed, 38 insertions(+), 20 deletions(-)
diff --git a/README.md b/README.md
index a73f3be33..fe0988d68 100644
--- a/README.md
+++ b/README.md
@@ -1,25 +1,43 @@
-[English](README.md)
-
-
OpenData - open data project management
-
-[](https://drone.gitea.io/go-gitea/gitea)
-[](https://discord.gg/Gitea)
-[](https://microbadger.com/images/gitea/gitea "Get your own image badge on microbadger.com")
-[](https://codecov.io/gh/go-gitea/gitea)
-[](https://godoc.org/code.gitea.io/gitea)
-[](https://github.com/go-gitea/gitea/releases/latest)
-[](https://www.codetriage.com/go-gitea/gitea)
-[](https://opencollective.com/gitea)
+[English](README_EN.md)
+
+
AiForge - 启智AI开发协作平台
+
+[](https://git.openi.org.cn/OpenI/aiforge/releases/latest)
[](https://opensource.org/licenses/MIT)
-[](https://crowdin.com/project/gitea)
-## 目标
-OpenData 的首要目标是提供对开源数据的大存储支持和管理,旨在为国家开源项目的建设贡献力量。为软件行业中的开源项目的发展提供助力。
+## AiForge
+
+启智AI开发协作平台是一个在线Web应用,旨在为人工智能算法、模型开发提供在线协同工作环境,它提供了代码托管、数据集管理与共享、免费云端算力资源支持(GPU/NPU)、共享镜像等功能。
+
+[启智AI开发协作平台](https://git.openi.org.cn) 是使用本项目构建的在线服务,你可以直接访问试用。
+
+本项目是基于[Gitea](https://github.com/go-gitea/gitea)发展而来的,我们对其进行了Fork并基于此进行了针对AI协作的功能模块开发。对于和代码托管相关的功能,您也可以参考[Gitea的文档](https://docs.gitea.io/zh-cn/)。
+
+## 在线服务使用
+本项目的在线服务平台的详细使用帮助文档,可参阅本项目[百科](https://git.openi.org.cn/OpenI/aiforge/wiki)内容。
+- 如何创建账号
+- 如何创建组织及管理成员权限
+- 如何创建项目仓库
+- 如何使用数据集功能
+- 如何使用计算资源
+- 使用小技巧
+- 常见问题(FAQ)
+## 安装
+您也可以基于本项目代码,在本地环境安装部署服务
+### 数据库准备
+[数据库准备说明](https://docs.gitea.io/zh-cn/database-prep/)
+### 从源代码安装
+- node版本 >= v10.13.0
+- golang版本 >= 1.13.3
+
+[从源代码安装说明](https://docs.gitea.io/zh-cn/install-from-source/)
-## 我们所提供的
+## 授权许可
+本项目采用 MIT 开源授权许可证,完整的授权说明已放置在 [LICENSE](https://git.openi.org.cn/OpenI/aiforge/src/branch/develop/LICENSE) 文件中。
-- 项目管理
-- git代码管理
-- 大数据集存储管理,最高单个数据集限制为1TB
-- 初期为社区项目免费提供30PB的算力,后续根据使用情况逐步增加
\ No newline at end of file
+## 需要帮助?
+如果您在使用或者开发过程中遇到问题,可以在以下渠道咨询:
+ - 点击[这里](https://git.openi.org.cn/OpenI/aiforge/issues)在线提交问题(点击页面右上角绿色按钮**创建任务**)
+ - 加入微信群实时交流,获得进一步的支持
+
From b38312fecf2d27ceef90e48f868bcb325d455f30 Mon Sep 17 00:00:00 2001
From: ychao_1983
Date: Tue, 31 Aug 2021 17:31:55 +0800
Subject: [PATCH 11/14] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=89=8D=E7=AB=AF?=
=?UTF-8?q?=E8=BE=93=E5=85=A5=E4=B8=BB=E9=A2=98=E5=9B=9E=E8=BD=A6=E4=B8=8D?=
=?UTF-8?q?=E6=A3=80=E6=9F=A5=E6=A0=BC=E5=BC=8F=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
web_src/js/index.js | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/web_src/js/index.js b/web_src/js/index.js
index cad60cdc2..2cc622cc0 100755
--- a/web_src/js/index.js
+++ b/web_src/js/index.js
@@ -4113,13 +4113,7 @@ function initTopicbar() {
$.fn.form.settings.rules.validateTopic = function (_values, regExp) {
const topics = topicDropdown.children('a.ui.label');
const status =
- topics.length === 0 ||
- topics
- .last()
- .attr('data-value')
- .match(regExp) || topics
- .last()
- .attr('data-value').length <= 35;
+ topics.length === 0 || (topics.last().attr('data-value').match(regExp) !== null && topics.last().attr('data-value').length <= 35);
if (!status) {
topics
.last()
From 9d358c3a8ea2460485d5140029a72d3b94ab5e33 Mon Sep 17 00:00:00 2001
From: avadesian
Date: Tue, 31 Aug 2021 18:01:13 +0800
Subject: [PATCH 12/14] comment out english version link
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index fe0988d68..77d8b777f 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[English](README_EN.md)
+
AiForge - 启智AI开发协作平台
@@ -10,7 +10,7 @@
启智AI开发协作平台是一个在线Web应用,旨在为人工智能算法、模型开发提供在线协同工作环境,它提供了代码托管、数据集管理与共享、免费云端算力资源支持(GPU/NPU)、共享镜像等功能。
-[启智AI开发协作平台](https://git.openi.org.cn) 是使用本项目构建的在线服务,你可以直接访问试用。
+[启智AI开发协作平台](https://git.openi.org.cn) 是使用本项目构建的在线服务,您可以直接点击链接访问试用。
本项目是基于[Gitea](https://github.com/go-gitea/gitea)发展而来的,我们对其进行了Fork并基于此进行了针对AI协作的功能模块开发。对于和代码托管相关的功能,您也可以参考[Gitea的文档](https://docs.gitea.io/zh-cn/)。
From 7a52affe0ba29531cd592bde3dc4aa225b0d4154 Mon Sep 17 00:00:00 2001
From: avadesian
Date: Wed, 1 Sep 2021 10:49:45 +0800
Subject: [PATCH 13/14] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=B3=BB=E7=BB=9F?=
=?UTF-8?q?=E6=9E=B6=E6=9E=84=E9=83=A8=E5=88=86=E4=BB=8B=E7=BB=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 11 ++++++++---
assets/架构图.png | Bin 0 -> 159038 bytes
2 files changed, 8 insertions(+), 3 deletions(-)
create mode 100644 assets/架构图.png
diff --git a/README.md b/README.md
index 77d8b777f..a3546ad46 100644
--- a/README.md
+++ b/README.md
@@ -12,19 +12,24 @@
[启智AI开发协作平台](https://git.openi.org.cn) 是使用本项目构建的在线服务,您可以直接点击链接访问试用。
-本项目是基于[Gitea](https://github.com/go-gitea/gitea)发展而来的,我们对其进行了Fork并基于此进行了针对AI协作的功能模块开发。对于和代码托管相关的功能,您也可以参考[Gitea的文档](https://docs.gitea.io/zh-cn/)。
+本项目是基于[Gitea](https://github.com/go-gitea/gitea)发展而来的,我们对其进行了Fork并基于此扩展了人工智能开发中需要的功能,如数据集管理和模型训练等。对于和代码托管相关的功能,您可以参考[Gitea的文档](https://docs.gitea.io/zh-cn/)。
+### 系统总体架构
+下图展示了系统总体架构,本项目分为Web前端和服务后端,Web页面面向算法开发者、应用开发者、科研工作者、学生等用户群体,通过统一的Web页面入口,使用系统提供的系统服务。
+
+后端服务涵盖了AI模型开发流水线,包括代码协同开发、数据管理、模型调试、训练、推理和部署等(*目前尚未支持模型部署*)。在不同的开发阶段,我们还将提供丰富的开发工具供用户使用,如数据标注、数据筛选、模型转换、模型压缩、代码监测等。我们也欢迎社区提供更多丰富的工具接入,提高利用平台进行开发的效率。
+
## 在线服务使用
本项目的在线服务平台的详细使用帮助文档,可参阅本项目[百科](https://git.openi.org.cn/OpenI/aiforge/wiki)内容。
- 如何创建账号
- 如何创建组织及管理成员权限
- 如何创建项目仓库
- 如何使用数据集功能
-- 如何使用计算资源
+- 如何使用计算资源进行模型调试和训练
- 使用小技巧
- 常见问题(FAQ)
## 安装
-您也可以基于本项目代码,在本地环境安装部署服务
+您也可以基于本项目代码,在本地环境安装部署服务。
### 数据库准备
[数据库准备说明](https://docs.gitea.io/zh-cn/database-prep/)
### 从源代码安装
diff --git a/assets/架构图.png b/assets/架构图.png
new file mode 100644
index 0000000000000000000000000000000000000000..d03a01a4d5dc5e1d44f26f91cbe2e391d276a329
GIT binary patch
literal 159038
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