Skip to content

Commit

Permalink
perf(frontend): polish contents
Browse files Browse the repository at this point in the history
  • Loading branch information
GeneLiuXe committed Feb 22, 2024
1 parent 4a769fd commit 5acb740
Show file tree
Hide file tree
Showing 12 changed files with 90 additions and 36 deletions.
1 change: 1 addition & 0 deletions frontend/packages/admin/src/views/Users.vue
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,7 @@ async function handleClickExport(): Promise<void> {
username: filters.value.userName,
email: filters.value.email,
limit: pageSize.value,
is_verified: filters.value.verifyStatus,
page: _page - 1,
}),
})
Expand Down
36 changes: 22 additions & 14 deletions frontend/packages/locale/src/en/home.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,18 @@ export default {
Cover: {
Beiming: "Beimingwu: A Learnware Dock System",
Introduction:
"A learnware is composed of a well-performed trained model and a specification describing model ability. Beimingwu system helps users solve tasks by reusing recommended learnwares conveniently.",
'Beimingwu is the first systematic open-source implementation of learnware dock system, providing a preliminary research platform for learnware studies. Developers worldwide can submit their models freely to the learnware dock. They can generate specifications for the model with the help of Beimingwu without disclosing their raw data, and then the model and specification can be assembled into a learnware, which will be accommodated in the learnware dock. Future users can solve their tasks by submitting their requirements and reusing helpful learnwares returned by Beimingwu, while also not disclosing their own data. It is anticipated that after Beimingwu accumulates millions of learnwares, an "emergent" behavior may occur: machine learning tasks that have never been specifically tackled may be solved by assembling and reusing some existing learnwares. For more in-depth information, you can access the complete paper here: ',
PaperLinkDescription: "Paper Link",
CodeRepo: {
Description: "Beimingwu is completely open-source. The related code repositories can be accessed by clicking: ",
Beimingwu: "System Frontend & Backend",
Learnware: "System Engine & Toolkit",
},
Try: "Try It Out",
Submit: "Be A Developer",
LearnwareName: "Learnware",
LearnwareDescription: "This is a learnware.",
ServeralLinesOfCode: "Solve Tasks",
ServeralLinesOfCode: "Solve Machine Learning Tasks",
SolveYourTasks: "with a few lines",
Developer: "Developer",
Example: {
Expand All @@ -29,6 +35,8 @@ export default {
},
Function: {
Title: "What are the main functions of Beimingwu?",
Description:
"The Beimingwu learnware dock system, serving as a preliminary research platform for the learnware paradigm, systematically accomplishes the entire process of learnware from submission to deployment as follows:",
SearchAndDeploy: {
Title: "Search and deploy learnwares: ",
Description:
Expand All @@ -37,35 +45,35 @@ export default {
Submit: {
Title: "Submit high-quality learnwares: ",
Description:
"Developers can spontaneously submit various learnwares to Beimingwu, and the system will check the quality of these learnwares and organize them further.",
"Developers can submit various learnwares to Beimingwu freely, and the system will check the quality of these learnwares and organize them further.",
},
},
Feature: {
Title: "What are the features of Beimingwu?",
Description:
"Through the systematic organization of learnwares, Beimingwu system can help the user precisely search learnwares with the help of task statistical requirement while ensuring data privacy, it also helps user safely load and conveniently reuse learnwares.",
"The learnware dock system Beimingwu enables users to search learnware(s) using additional task-related statistical information, facilitating convenient deployment and reuse of learnwares, while not disclosing user's original data. Its scalable architecture offers a rich set of interfaces, supporting implementation of newly developed algorithms in research of learnware specifications, searching, organization, and reuse.",
Recommendation: {
Name: "Recommend more effective models with Statistical information",
Name: "Recommend models with statistical specification",
Description:
"Beimingwu uses statistics to offer precise recommendation. If no single model fits, combining several might work. The system also supports searching and reusing misaligned feature space models for tabular tasks.",
"Except for natural language descriptions, Beimingwu can utilize statistical information of tasks to recommend more targeted models. Besides, Beimingwu preliminarily supports searching and reusing models from different feature spaces for tabular tasks with baseline algorithm.",
HomoTable: "Homogeneous table examples",
HeteroTable: "Heterogeneous table examples",
},
loadAndReuse: {
Name1: "Secure learnware loading",
Name2: "Convenient learnware reuse",
Name1: "A unified way to load and reuse learnwares conveniently",
Name2: "",
Description:
"Once the user acquire the learnware, there's no concern about the model's environment or security threats. It can be safely loaded with a single line of code, and the system offers various interfaces for model reuse.",
"After the user obtains the learnwares from Beimingwu, Beimingwu allows for effortless deployment of arbitrary learnwares in a unified way based on containerized isolation, with little concerns about environment compatibility and safety. Also, Beimingwu provides several baseline reuse methods in a uniform format for convenient usage.",
},
Privacy: {
Name: "Not leaking raw data, protecting data privacy",
Name: "Not disclosing user's raw data",
Description:
"Providing task statistics helps match user's needs or models more effectively. The statistical specification shares task statistics without exposing original data. This generation is local and the code is open source.",
"To search helpful learnwares based on statistical information, instead of uploading raw data, user can generate and submit the statistical specification using API, which captures the data distribution while not disclosing the raw data.",
},
OpenSource: {
Name: "Beimingwu is open source to the community",
Name: "Completely open-source: co-building the learnware ecosystem",
Description:
"Beimingwu is the first open-source model platform, offering various deployment options. We warmly welcome the community to try and collaboratively enhance the system.",
"Beimingwu is completely open-source. As the algorithms improve and the number of learnware increases, the capability of Beimingwu to solve tasks will be constantly enhanced. Beimingwu is still young, and we sincerely invite the open-source community to join us in developing and perfecting the system, uploading various models, and researching and improving learnware-related algorithms.",
},
},
Why: {
Expand Down Expand Up @@ -97,7 +105,7 @@ export default {
},
Footer: {
About: "About",
Gitee: "Gitee",
Git: "GitLink",
ContactUs: "Contact Us",
UserAgreement: "User Agreement",
PrivacyPolicy: "Privacy Policy",
Expand Down
2 changes: 2 additions & 0 deletions frontend/packages/locale/src/en/register.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@ export default {
ConfirmPassword: "Confirm Password",
SentEmail:
"We have sent an email with a confirmation link to your email address. Please follow the link in the email.",
NotReceived: "If you haven't received the registration email for a long time, you can contact bmwu-support{'@'}lamda.nju.edu.cn.",
Resend: "Resend",
Close: "Close",
ReadAndAgree: "Read and Agree to",
UserAgreement: "Agreement",
PrivacyPolicy: "Privacy",
OnlyEduEmail: "Due to limited system resources, we currently only support registration with educational email addresses. For non-educational email addresses, please contact bmwu-support{'@'}lamda.nju.edu.cn to apply.",
Error: {
UsernameAtLeast2Chars: "Username needs to be at least 2 characters.",
UsernameAtMost20Chars: "Username cannot be more than 20 characters.",
Expand Down
34 changes: 21 additions & 13 deletions frontend/packages/locale/src/zh-cn/home.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,20 @@ export default {
Cover: {
Beiming: "北冥坞:学件基座系统",
Introduction:
"学件由表现良好的模型和描述其能力的规约构成。北冥坞系统以便捷的方式帮助缺乏机器学习资源/经验的用户通过复用推荐学件解决机器学习任务。",
"北冥坞是学件的第一个系统性开源实现,为学件相关研究提供了一个初步科研平台。有分享意愿的开发者可自由提交模型,学件坞协助产生规约形成学件存放在学件坞中,开发者在这个过程中无需向学件坞泄露自己的训练数据。未来的用户可以通过向学件坞提交需求,在学件坞协助下查搜复用学件来完成自己的机器学习任务,且用户可以不向学件坞泄露自有数据。预计在学件坞拥有数以百万计的学件后,将可能出现“涌现”行为:以往没有专门开发过模型的机器学习任务,可能通过复用若干个现有学件而解决。如需了解更多信息,可点击查看完整论文: ",
PaperLinkDescription: "论文链接",
CodeRepo: {
Description: "北冥坞所有代码完全开源,相关代码仓库可点击: ",
Beimingwu: "系统前后端",
Learnware: "系统引擎及工具包",
},
Try: "学件查搜",
Submit: "学件上传",
LearnwareName: "学件",
LearnwareDescription: "这是一个学件。",
Developer: "开发者",
ServeralLinesOfCode: "几行代码",
SolveYourTasks: "解决新任务",
SolveYourTasks: "解决机器学习任务",
Example: {
Simplified: "简化示例",
Single: "单模型示例",
Expand All @@ -29,6 +35,8 @@ export default {
},
Function: {
Title: "北冥坞系统的主要功能是什么?",
Description:
"北冥坞学件基座系统作为学件范式的初步科研平台,实现了学件从上传到部署的完整流程如下:",
SearchAndDeploy: {
Title: "查搜部署学件:",
Description:
Expand All @@ -37,35 +45,35 @@ export default {
Submit: {
Title: "提交优质学件:",
Description:
"开发者可以自发地提交各式各样的学件到学件基座系统,而系统会对这些学件进行质量检查和进一步的组织。",
"开发者可以提交各式各样的学件到学件基座系统,而系统会对这些学件进行质量检查和进一步的组织。",
},
},
Feature: {
Title: "北冥坞系统有哪些特点?",
Description:
"通过对学件的系统组织,北冥坞系统能够帮助用户额外使用任务的统计信息进行精准地学件查搜,帮助用户安全地部署学件,便捷地复用学件;并且充分保护用户的数据隐私。",
"北冥坞系统能够帮助用户使用任务的统计信息查搜学件,帮助用户便捷地复用学件。此过程无需暴露用户的数据。北冥坞的架构具有可扩展性,可支持学件规约、学件查搜、组织、复用等多个环节新算法研究的实现与验证。",
Recommendation: {
Name: "利用统计信息的查搜能推荐更有效的模型",
Name: "利用统计信息查搜模型",
Description:
"通过利用统计信息,北冥坞系统可以为新任务提供更加精准的模型推荐,这些模型往往具有更好的复用性能。即使北冥坞系统里不存在一个模型能较好的解决新任务,多个模型的组合可能足以解决。对于表格型任务,系统初步支持查搜(和复用)特征空间不对齐的模型。",
"除了文字描述外,北冥坞系统可以利用统计信息来为用户匹配和推荐模型,这些模型往往具有更好的针对性。对于表格型任务,系统初步支持查搜(和复用)特征空间不对齐的模型。",
HomoTable: "同构表格示例",
HeteroTable: "异构表格示例",
},
loadAndReuse: {
Name1: "安全的学件加载",
Name2: "便捷的学件复用",
Name1: "统一的学件加载与复用方式",
Name2: "",
Description:
"获取学件后,用户无需为模型运行的环境烦恼,也无需担心恶意代码和恶意攻击,一行代码即可安全加载学件,同时系统提供多种接口帮助用户复用学件以解决任务。",
"获取学件后,用户无需考虑模型运行环境问题,一行代码即可统一方式加载学件。同时,系统以统一的方式提供多种基础复用接口帮助用户复用学件。",
},
Privacy: {
Name: "隐密原始数据,保障数据隐私",
Name: "不泄露用户原始数据",
Description:
"如果用户可以提供任务的统计信息,这将帮助用户的需求或者模型被更好的匹配。统计规约可以在保护用户原始数据不被泄露的情况下提供任务的统计信息。生成统计规约的过程在本地进行且代码公开。",
},
OpenSource: {
Name: "北冥坞面向社区开源",
Name: "面向社区开源,共建学件生态",
Description:
"北冥坞系统是首个开源的模型平台,引擎、前端、后端全部开源,支持多种部署方式。我们诚邀社区体验使用系统并共同开发完善系统。",
"北冥坞所有代码完全开源。随着算法的改进和学件数量的增多,北冥坞解决任务的能力将逐步增强。北冥坞还很年轻,我们诚邀开源社区共同开发完善系统,上传多种模型,并进行学件相关算法的研究与改进。",
},
},
Why: {
Expand Down Expand Up @@ -97,7 +105,7 @@ export default {
},
Footer: {
About: "关于我们",
Gitee: "Gitee",
Git: "GitLink",
ContactUs: "联系我们",
UserAgreement: "用户协议",
PrivacyPolicy: "隐私政策",
Expand Down
2 changes: 2 additions & 0 deletions frontend/packages/locale/src/zh-cn/register.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@ export default {
Password: "密码",
ConfirmPassword: "确认密码",
SentEmail: "我们向您的邮箱发送了一封确认邮件,请点击邮件中的链接完成注册。",
NotReceived: "若长时间未收到注册邮件,可联系bmwu-support{'@'}lamda.nju.edu.cn。",
Resend: "重新发送",
Close: "关闭",
ReadAndAgree: "我已阅读并同意",
UserAgreement: "用户协议",
PrivacyPolicy: "隐私政策",
OnlyEduEmail: "由于系统资源有限,现仅支持教育邮箱注册。非教育邮箱可联系bmwu-support{'@'}lamda.nju.edu.cn 进行申请。",
Error: {
UsernameAtLeast2Chars: "用户名至少需要 2 个字符",
UsernameAtMost20Chars: "用户名不能超过 20 个字符",
Expand Down
2 changes: 0 additions & 2 deletions frontend/packages/main/src/assets/images/home/gitee.svg

This file was deleted.

22 changes: 22 additions & 0 deletions frontend/packages/main/src/components/Home/HomeSlogan.vue
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,28 @@ watch(

<div class="mx-auto mt-6 max-w-7xl px-10 sm:px-20 md:px-40 lg:px-60">
{{ t("Home.Cover.Introduction") }}
<a
:href="`https://arxiv.org/pdf/2401.14427.pdf`"
class="text-white dark:text-white"
target="_blank"
>
{{ t("Home.Cover.PaperLinkDescription") }}
</a>
</div>

<div class="mx-auto mt-1 max-w-7xl px-10 sm:px-20 md:px-40 lg:px-60">
{{ t("Home.Cover.CodeRepo.Description") }}
<a
:href="`https://www.gitlink.org.cn/beimingwu/beimingwu`"
class="text-white dark:text-white"
target="_blank"
>{{ t("Home.Cover.CodeRepo.Beimingwu") }}</a
>,&nbsp;<a
:href="`https://www.gitlink.org.cn/beimingwu/learnware`"
class="text-white dark:text-white"
target="_blank"
>{{ t("Home.Cover.CodeRepo.Learnware") }}</a
>
</div>

<div class="flex justify-center pt-10">
Expand Down
3 changes: 3 additions & 0 deletions frontend/packages/main/src/components/Home/MainFunction.vue
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ const imgSrc = computedAsync<string>(async () => {
<div class="my-5 text-3xl font-medium lg:my-7 lg:text-4xl xl:my-10 xl:text-4xl">
{{ t("Home.Function.Title") }}
</div>
<p class="text-gray-500">
{{ t("Home.Function.Description") }}
</p>
<p class="text-gray-500">
<b> {{ t("Home.Function.SearchAndDeploy.Title") }} </b
>{{ t("Home.Function.SearchAndDeploy.Description") }}
Expand Down
7 changes: 3 additions & 4 deletions frontend/packages/main/src/components/Home/MyFooter.vue
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
<script setup lang="ts">
import { computed } from "vue";
import { useI18n } from "vue-i18n";
import gitee from "@main/assets/images/home/gitee.svg?url";
const { t } = useI18n();
Expand All @@ -15,9 +14,9 @@ const links = computed(() => [
tooltips: "",
},
{
icon: gitee,
name: t("Home.Footer.Gitee"),
path: "https://gitee.com/beimingwu/beimingwu",
icon: "mdi-git",
name: t("Home.Footer.Git"),
path: "https://www.gitlink.org.cn/beimingwu/beimingwu",
tooltips: "",
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,7 @@ watch(
<!--Show in mobile-->
<div class="text-lg sm:hidden">
<div
v-for="i in 2"
v-for="i in 1"
:key="i"
class="text-2xl font-medium"
>
Expand Down
2 changes: 1 addition & 1 deletion frontend/packages/main/src/views/Login.vue
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ const router = useRouter();
const email = useField<string>({
defaultValue: "",
validate: (value) => {
if (!/^[a-z.-_]+@([a-z.-]+\.[a-z]+|localhost)$/i.test(value)) {
if (!/^[a-z.-_]+@([a-z0-9.-]+\.[a-z]+|localhost)$/i.test(value)) {
return t("Login.Error.InvalidEmail");
}
return "";
Expand Down
13 changes: 12 additions & 1 deletion frontend/packages/main/src/views/Register.vue
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ const userName = useField<string>({
const email = useField<string>({
defaultValue: "",
validate: (value) => {
if (!/^[a-z.-_]+@[a-z.-]+\.[a-z]+$/i.test(value)) return t("Register.Error.InvalidEmail");
if (!/^[a-z.-_]+@[a-z0-9.-]+\.[a-z]+$/i.test(value)) return t("Register.Error.InvalidEmail");
if (value?.length > 50) return t("Register.Error.EmailAtMost50Chars");
return "";
},
Expand Down Expand Up @@ -141,6 +141,12 @@ onUnmounted(() => {
<template #msg>
<div class="mb-8 mt-6 text-lg">
{{ t("Register.SentEmail") }}
<div
class="mb-8 mt-6 text-lg"
style="margin-top: 0"
>
{{ t("Register.NotReceived") }}
</div>
</div>
</template>
<template #buttons>
Expand Down Expand Up @@ -199,6 +205,11 @@ onUnmounted(() => {
{{ t("Register.Register") }}
</div>
</v-card-title>
<v-card-text>
<div class="mx-2">
{{ t("Register.OnlyEduEmail") }}
</div>
</v-card-text>
<v-card-text>
<v-form>
<v-text-field
Expand Down

0 comments on commit 5acb740

Please sign in to comment.