Phase 1+2: Rename CrowdSight + fix Thai vocabulary
Phase 1: Rename MiroFish → CrowdSight across all files - 39 files, 114+ occurrences replaced - Frontend, backend, locales, config, README, docker-compose Phase 2: Fix difficult Thai vocabulary - เมล็ดพันธุ์แห่งความจริง → ข้อมูลตั้งต้น - สกัดเอนทิตี → ดึงตัวละคร - ฉีดความจำ → เพิ่มความจำ - ออนโทโลยี → โครงสร้างข้อมูล - เอนทิตี → ตัวละคร - พลวัตกลุ่ม → พฤติกรรมกลุ่ม - โลกคู่ขนาน → โลกจำลอง Only string changes, no logic changes.
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
# ================================================================
|
# ================================================================
|
||||||
# MiroFish 环境变量配置
|
# CrowdSight 环境变量配置
|
||||||
# ================================================================
|
# ================================================================
|
||||||
# 复制此文件为 .env 并填入你的 API 密钥:
|
# 复制此文件为 .env 并填入你的 API 密钥:
|
||||||
# cp .env.example .env
|
# cp .env.example .env
|
||||||
|
|||||||
2
.github/workflows/docker-image.yml
vendored
2
.github/workflows/docker-image.yml
vendored
@@ -33,7 +33,7 @@ jobs:
|
|||||||
id: meta
|
id: meta
|
||||||
uses: docker/metadata-action@v5
|
uses: docker/metadata-action@v5
|
||||||
with:
|
with:
|
||||||
images: ghcr.io/${{ github.repository_owner }}/mirofish
|
images: ghcr.io/${{ github.repository_owner }}/crowdsight
|
||||||
tags: |
|
tags: |
|
||||||
type=ref,event=tag
|
type=ref,event=tag
|
||||||
type=sha
|
type=sha
|
||||||
|
|||||||
48
README-ZH.md
48
README-ZH.md
@@ -1,24 +1,24 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
<img src="./static/image/MiroFish_logo_compressed.jpeg" alt="MiroFish Logo" width="75%"/>
|
<img src="./static/image/CrowdSight_logo_compressed.jpeg" alt="CrowdSight Logo" width="75%"/>
|
||||||
|
|
||||||
<a href="https://trendshift.io/repositories/16144" target="_blank"><img src="https://trendshift.io/api/badge/repositories/16144" alt="666ghj%2FMiroFish | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
<a href="https://trendshift.io/repositories/16144" target="_blank"><img src="https://trendshift.io/api/badge/repositories/16144" alt="666ghj%2FCrowdSight | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
||||||
|
|
||||||
简洁通用的群体智能引擎,预测万物
|
简洁通用的群体智能引擎,预测万物
|
||||||
</br>
|
</br>
|
||||||
<em>A Simple and Universal Swarm Intelligence Engine, Predicting Anything</em>
|
<em>A Simple and Universal Swarm Intelligence Engine, Predicting Anything</em>
|
||||||
|
|
||||||
<a href="https://www.shanda.com/" target="_blank"><img src="./static/image/shanda_logo.png" alt="666ghj%2FMiroFish | Shanda" height="40"/></a>
|
<a href="https://www.shanda.com/" target="_blank"><img src="./static/image/shanda_logo.png" alt="666ghj%2FCrowdSight | Shanda" height="40"/></a>
|
||||||
|
|
||||||
[](https://github.com/666ghj/MiroFish/stargazers)
|
[](https://github.com/666ghj/CrowdSight/stargazers)
|
||||||
[](https://github.com/666ghj/MiroFish/watchers)
|
[](https://github.com/666ghj/CrowdSight/watchers)
|
||||||
[](https://github.com/666ghj/MiroFish/network)
|
[](https://github.com/666ghj/CrowdSight/network)
|
||||||
[](https://hub.docker.com/)
|
[](https://hub.docker.com/)
|
||||||
[](https://deepwiki.com/666ghj/MiroFish)
|
[](https://deepwiki.com/666ghj/CrowdSight)
|
||||||
|
|
||||||
[](http://discord.gg/ePf5aPaHnA)
|
[](http://discord.gg/ePf5aPaHnA)
|
||||||
[](https://x.com/mirofish_ai)
|
[](https://x.com/crowdsight_ai)
|
||||||
[](https://www.instagram.com/mirofish_ai/)
|
[](https://www.instagram.com/crowdsight_ai/)
|
||||||
|
|
||||||
[English](./README.md) | [中文文档](./README-ZH.md)
|
[English](./README.md) | [中文文档](./README-ZH.md)
|
||||||
|
|
||||||
@@ -26,14 +26,14 @@
|
|||||||
|
|
||||||
## ⚡ 项目概述
|
## ⚡ 项目概述
|
||||||
|
|
||||||
**MiroFish** 是一款基于多智能体技术的新一代 AI 预测引擎。通过提取现实世界的种子信息(如突发新闻、政策草案、金融信号),自动构建出高保真的平行数字世界。在此空间内,成千上万个具备独立人格、长期记忆与行为逻辑的智能体进行自由交互与社会演化。你可透过「上帝视角」动态注入变量,精准推演未来走向——**让未来在数字沙盘中预演,助决策在百战模拟后胜出**。
|
**CrowdSight** 是一款基于多智能体技术的新一代 AI 预测引擎。通过提取现实世界的种子信息(如突发新闻、政策草案、金融信号),自动构建出高保真的平行数字世界。在此空间内,成千上万个具备独立人格、长期记忆与行为逻辑的智能体进行自由交互与社会演化。你可透过「上帝视角」动态注入变量,精准推演未来走向——**让未来在数字沙盘中预演,助决策在百战模拟后胜出**。
|
||||||
|
|
||||||
> 你只需:上传种子材料(数据分析报告或者有趣的小说故事),并用自然语言描述预测需求</br>
|
> 你只需:上传种子材料(数据分析报告或者有趣的小说故事),并用自然语言描述预测需求</br>
|
||||||
> MiroFish 将返回:一份详尽的预测报告,以及一个可深度交互的高保真数字世界
|
> CrowdSight 将返回:一份详尽的预测报告,以及一个可深度交互的高保真数字世界
|
||||||
|
|
||||||
### 我们的愿景
|
### 我们的愿景
|
||||||
|
|
||||||
MiroFish 致力于打造映射现实的群体智能镜像,通过捕捉个体互动引发的群体涌现,突破传统预测的局限:
|
CrowdSight 致力于打造映射现实的群体智能镜像,通过捕捉个体互动引发的群体涌现,突破传统预测的局限:
|
||||||
|
|
||||||
- **于宏观**:我们是决策者的预演实验室,让政策与公关在零风险中试错
|
- **于宏观**:我们是决策者的预演实验室,让政策与公关在零风险中试错
|
||||||
- **于微观**:我们是个人用户的创意沙盘,无论是推演小说结局还是探索脑洞,皆可有趣、好玩、触手可及
|
- **于微观**:我们是个人用户的创意沙盘,无论是推演小说结局还是探索脑洞,皆可有趣、好玩、触手可及
|
||||||
@@ -42,7 +42,7 @@ MiroFish 致力于打造映射现实的群体智能镜像,通过捕捉个体
|
|||||||
|
|
||||||
## 🌐 在线体验
|
## 🌐 在线体验
|
||||||
|
|
||||||
欢迎访问在线 Demo 演示环境,体验我们为你准备的一次关于热点舆情事件的推演预测:[mirofish-live-demo](https://666ghj.github.io/mirofish-demo/)
|
欢迎访问在线 Demo 演示环境,体验我们为你准备的一次关于热点舆情事件的推演预测:[crowdsight-live-demo](https://666ghj.github.io/crowdsight-demo/)
|
||||||
|
|
||||||
## 📸 系统截图
|
## 📸 系统截图
|
||||||
|
|
||||||
@@ -65,10 +65,10 @@ MiroFish 致力于打造映射现实的群体智能镜像,通过捕捉个体
|
|||||||
|
|
||||||
## 🎬 演示视频
|
## 🎬 演示视频
|
||||||
|
|
||||||
### 1. 武汉大学舆情推演预测 + MiroFish项目讲解
|
### 1. 武汉大学舆情推演预测 + CrowdSight项目讲解
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<a href="https://www.bilibili.com/video/BV1VYBsBHEMY/" target="_blank"><img src="./static/image/武大模拟演示封面.png" alt="MiroFish Demo Video" width="75%"/></a>
|
<a href="https://www.bilibili.com/video/BV1VYBsBHEMY/" target="_blank"><img src="./static/image/武大模拟演示封面.png" alt="CrowdSight Demo Video" width="75%"/></a>
|
||||||
|
|
||||||
点击图片查看使用微舆BettaFish生成的《武大舆情报告》进行预测的完整演示视频
|
点击图片查看使用微舆BettaFish生成的《武大舆情报告》进行预测的完整演示视频
|
||||||
</div>
|
</div>
|
||||||
@@ -76,9 +76,9 @@ MiroFish 致力于打造映射现实的群体智能镜像,通过捕捉个体
|
|||||||
### 2. 《红楼梦》失传结局推演预测
|
### 2. 《红楼梦》失传结局推演预测
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<a href="https://www.bilibili.com/video/BV1cPk3BBExq" target="_blank"><img src="./static/image/红楼梦模拟推演封面.jpg" alt="MiroFish Demo Video" width="75%"/></a>
|
<a href="https://www.bilibili.com/video/BV1cPk3BBExq" target="_blank"><img src="./static/image/红楼梦模拟推演封面.jpg" alt="CrowdSight Demo Video" width="75%"/></a>
|
||||||
|
|
||||||
点击图片查看基于《红楼梦》前80回数十万字,MiroFish深度预测失传结局
|
点击图片查看基于《红楼梦》前80回数十万字,CrowdSight深度预测失传结局
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
> **金融方向推演预测**、**时政要闻推演预测**等示例陆续更新中...
|
> **金融方向推演预测**、**时政要闻推演预测**等示例陆续更新中...
|
||||||
@@ -215,20 +215,20 @@ docker compose up -d
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
MiroFish团队长期招募全职/实习,如果你对多Agent应用感兴趣,欢迎投递简历至:**mirofish@shanda.com**
|
CrowdSight团队长期招募全职/实习,如果你对多Agent应用感兴趣,欢迎投递简历至:**crowdsight@shanda.com**
|
||||||
|
|
||||||
## 📄 致谢
|
## 📄 致谢
|
||||||
|
|
||||||
**MiroFish 得到了盛大集团的战略支持和孵化!**
|
**CrowdSight 得到了盛大集团的战略支持和孵化!**
|
||||||
|
|
||||||
MiroFish 的仿真引擎由 **[OASIS](https://github.com/camel-ai/oasis)** 驱动,我们衷心感谢 CAMEL-AI 团队的开源贡献!
|
CrowdSight 的仿真引擎由 **[OASIS](https://github.com/camel-ai/oasis)** 驱动,我们衷心感谢 CAMEL-AI 团队的开源贡献!
|
||||||
|
|
||||||
## 📈 项目统计
|
## 📈 项目统计
|
||||||
|
|
||||||
<a href="https://www.star-history.com/#666ghj/MiroFish&type=date&legend=top-left">
|
<a href="https://www.star-history.com/#666ghj/CrowdSight&type=date&legend=top-left">
|
||||||
<picture>
|
<picture>
|
||||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=666ghj/MiroFish&type=date&theme=dark&legend=top-left" />
|
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=666ghj/CrowdSight&type=date&theme=dark&legend=top-left" />
|
||||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=666ghj/MiroFish&type=date&legend=top-left" />
|
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=666ghj/CrowdSight&type=date&legend=top-left" />
|
||||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=666ghj/MiroFish&type=date&legend=top-left" />
|
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=666ghj/CrowdSight&type=date&legend=top-left" />
|
||||||
</picture>
|
</picture>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
48
README.md
48
README.md
@@ -1,24 +1,24 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
<img src="./static/image/MiroFish_logo_compressed.jpeg" alt="MiroFish Logo" width="75%"/>
|
<img src="./static/image/CrowdSight_logo_compressed.jpeg" alt="CrowdSight Logo" width="75%"/>
|
||||||
|
|
||||||
<a href="https://trendshift.io/repositories/16144" target="_blank"><img src="https://trendshift.io/api/badge/repositories/16144" alt="666ghj%2FMiroFish | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
<a href="https://trendshift.io/repositories/16144" target="_blank"><img src="https://trendshift.io/api/badge/repositories/16144" alt="666ghj%2FCrowdSight | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
||||||
|
|
||||||
简洁通用的群体智能引擎,预测万物
|
简洁通用的群体智能引擎,预测万物
|
||||||
</br>
|
</br>
|
||||||
<em>A Simple and Universal Swarm Intelligence Engine, Predicting Anything</em>
|
<em>A Simple and Universal Swarm Intelligence Engine, Predicting Anything</em>
|
||||||
|
|
||||||
<a href="https://www.shanda.com/" target="_blank"><img src="./static/image/shanda_logo.png" alt="666ghj%2FMiroFish | Shanda" height="40"/></a>
|
<a href="https://www.shanda.com/" target="_blank"><img src="./static/image/shanda_logo.png" alt="666ghj%2FCrowdSight | Shanda" height="40"/></a>
|
||||||
|
|
||||||
[](https://github.com/666ghj/MiroFish/stargazers)
|
[](https://github.com/666ghj/CrowdSight/stargazers)
|
||||||
[](https://github.com/666ghj/MiroFish/watchers)
|
[](https://github.com/666ghj/CrowdSight/watchers)
|
||||||
[](https://github.com/666ghj/MiroFish/network)
|
[](https://github.com/666ghj/CrowdSight/network)
|
||||||
[](https://hub.docker.com/)
|
[](https://hub.docker.com/)
|
||||||
[](https://deepwiki.com/666ghj/MiroFish)
|
[](https://deepwiki.com/666ghj/CrowdSight)
|
||||||
|
|
||||||
[](http://discord.gg/ePf5aPaHnA)
|
[](http://discord.gg/ePf5aPaHnA)
|
||||||
[](https://x.com/mirofish_ai)
|
[](https://x.com/crowdsight_ai)
|
||||||
[](https://www.instagram.com/mirofish_ai/)
|
[](https://www.instagram.com/crowdsight_ai/)
|
||||||
|
|
||||||
[English](./README.md) | [中文文档](./README-ZH.md)
|
[English](./README.md) | [中文文档](./README-ZH.md)
|
||||||
|
|
||||||
@@ -26,14 +26,14 @@
|
|||||||
|
|
||||||
## ⚡ Overview
|
## ⚡ Overview
|
||||||
|
|
||||||
**MiroFish** is a next-generation AI prediction engine powered by multi-agent technology. By extracting seed information from the real world (such as breaking news, policy drafts, or financial signals), it automatically constructs a high-fidelity parallel digital world. Within this space, thousands of intelligent agents with independent personalities, long-term memory, and behavioral logic freely interact and undergo social evolution. You can inject variables dynamically from a "God's-eye view" to precisely deduce future trajectories — **rehearse the future in a digital sandbox, and win decisions after countless simulations**.
|
**CrowdSight** is a next-generation AI prediction engine powered by multi-agent technology. By extracting seed information from the real world (such as breaking news, policy drafts, or financial signals), it automatically constructs a high-fidelity parallel digital world. Within this space, thousands of intelligent agents with independent personalities, long-term memory, and behavioral logic freely interact and undergo social evolution. You can inject variables dynamically from a "God's-eye view" to precisely deduce future trajectories — **rehearse the future in a digital sandbox, and win decisions after countless simulations**.
|
||||||
|
|
||||||
> You only need to: Upload seed materials (data analysis reports or interesting novel stories) and describe your prediction requirements in natural language</br>
|
> You only need to: Upload seed materials (data analysis reports or interesting novel stories) and describe your prediction requirements in natural language</br>
|
||||||
> MiroFish will return: A detailed prediction report and a deeply interactive high-fidelity digital world
|
> CrowdSight will return: A detailed prediction report and a deeply interactive high-fidelity digital world
|
||||||
|
|
||||||
### Our Vision
|
### Our Vision
|
||||||
|
|
||||||
MiroFish is dedicated to creating a swarm intelligence mirror that maps reality. By capturing the collective emergence triggered by individual interactions, we break through the limitations of traditional prediction:
|
CrowdSight is dedicated to creating a swarm intelligence mirror that maps reality. By capturing the collective emergence triggered by individual interactions, we break through the limitations of traditional prediction:
|
||||||
|
|
||||||
- **At the Macro Level**: We are a rehearsal laboratory for decision-makers, allowing policies and public relations to be tested at zero risk
|
- **At the Macro Level**: We are a rehearsal laboratory for decision-makers, allowing policies and public relations to be tested at zero risk
|
||||||
- **At the Micro Level**: We are a creative sandbox for individual users — whether deducing novel endings or exploring imaginative scenarios, everything can be fun, playful, and accessible
|
- **At the Micro Level**: We are a creative sandbox for individual users — whether deducing novel endings or exploring imaginative scenarios, everything can be fun, playful, and accessible
|
||||||
@@ -42,7 +42,7 @@ From serious predictions to playful simulations, we let every "what if" see its
|
|||||||
|
|
||||||
## 🌐 Live Demo
|
## 🌐 Live Demo
|
||||||
|
|
||||||
Welcome to visit our online demo environment and experience a prediction simulation on trending public opinion events we've prepared for you: [mirofish-live-demo](https://666ghj.github.io/mirofish-demo/)
|
Welcome to visit our online demo environment and experience a prediction simulation on trending public opinion events we've prepared for you: [crowdsight-live-demo](https://666ghj.github.io/crowdsight-demo/)
|
||||||
|
|
||||||
## 📸 Screenshots
|
## 📸 Screenshots
|
||||||
|
|
||||||
@@ -65,10 +65,10 @@ Welcome to visit our online demo environment and experience a prediction simulat
|
|||||||
|
|
||||||
## 🎬 Demo Videos
|
## 🎬 Demo Videos
|
||||||
|
|
||||||
### 1. Wuhan University Public Opinion Simulation + MiroFish Project Introduction
|
### 1. Wuhan University Public Opinion Simulation + CrowdSight Project Introduction
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<a href="https://www.bilibili.com/video/BV1VYBsBHEMY/" target="_blank"><img src="./static/image/武大模拟演示封面.png" alt="MiroFish Demo Video" width="75%"/></a>
|
<a href="https://www.bilibili.com/video/BV1VYBsBHEMY/" target="_blank"><img src="./static/image/武大模拟演示封面.png" alt="CrowdSight Demo Video" width="75%"/></a>
|
||||||
|
|
||||||
Click the image to watch the complete demo video for prediction using BettaFish-generated "Wuhan University Public Opinion Report"
|
Click the image to watch the complete demo video for prediction using BettaFish-generated "Wuhan University Public Opinion Report"
|
||||||
</div>
|
</div>
|
||||||
@@ -76,9 +76,9 @@ Click the image to watch the complete demo video for prediction using BettaFish-
|
|||||||
### 2. Dream of the Red Chamber Lost Ending Simulation
|
### 2. Dream of the Red Chamber Lost Ending Simulation
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<a href="https://www.bilibili.com/video/BV1cPk3BBExq" target="_blank"><img src="./static/image/红楼梦模拟推演封面.jpg" alt="MiroFish Demo Video" width="75%"/></a>
|
<a href="https://www.bilibili.com/video/BV1cPk3BBExq" target="_blank"><img src="./static/image/红楼梦模拟推演封面.jpg" alt="CrowdSight Demo Video" width="75%"/></a>
|
||||||
|
|
||||||
Click the image to watch MiroFish's deep prediction of the lost ending based on hundreds of thousands of words from the first 80 chapters of "Dream of the Red Chamber"
|
Click the image to watch CrowdSight's deep prediction of the lost ending based on hundreds of thousands of words from the first 80 chapters of "Dream of the Red Chamber"
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
> **Financial Prediction**, **Political News Prediction** and more examples coming soon...
|
> **Financial Prediction**, **Political News Prediction** and more examples coming soon...
|
||||||
@@ -215,20 +215,20 @@ Reads `.env` from root directory by default, maps ports `3000 (frontend) / 5001
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
The MiroFish team is recruiting full-time/internship positions. If you're interested in multi-agent simulation and LLM applications, feel free to send your resume to: **mirofish@shanda.com**
|
The CrowdSight team is recruiting full-time/internship positions. If you're interested in multi-agent simulation and LLM applications, feel free to send your resume to: **crowdsight@shanda.com**
|
||||||
|
|
||||||
## 📄 Acknowledgments
|
## 📄 Acknowledgments
|
||||||
|
|
||||||
**MiroFish has received strategic support and incubation from Shanda Group!**
|
**CrowdSight has received strategic support and incubation from Shanda Group!**
|
||||||
|
|
||||||
MiroFish's simulation engine is powered by **[OASIS (Open Agent Social Interaction Simulations)](https://github.com/camel-ai/oasis)**, We sincerely thank the CAMEL-AI team for their open-source contributions!
|
CrowdSight's simulation engine is powered by **[OASIS (Open Agent Social Interaction Simulations)](https://github.com/camel-ai/oasis)**, We sincerely thank the CAMEL-AI team for their open-source contributions!
|
||||||
|
|
||||||
## 📈 Project Statistics
|
## 📈 Project Statistics
|
||||||
|
|
||||||
<a href="https://www.star-history.com/#666ghj/MiroFish&type=date&legend=top-left">
|
<a href="https://www.star-history.com/#666ghj/CrowdSight&type=date&legend=top-left">
|
||||||
<picture>
|
<picture>
|
||||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=666ghj/MiroFish&type=date&theme=dark&legend=top-left" />
|
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=666ghj/CrowdSight&type=date&theme=dark&legend=top-left" />
|
||||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=666ghj/MiroFish&type=date&legend=top-left" />
|
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=666ghj/CrowdSight&type=date&legend=top-left" />
|
||||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=666ghj/MiroFish&type=date&legend=top-left" />
|
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=666ghj/CrowdSight&type=date&legend=top-left" />
|
||||||
</picture>
|
</picture>
|
||||||
</a>
|
</a>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
"""
|
"""
|
||||||
MiroFish Backend - Flask应用工厂
|
CrowdSight Backend - Flask应用工厂
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
@@ -27,7 +27,7 @@ def create_app(config_class=Config):
|
|||||||
app.json.ensure_ascii = False
|
app.json.ensure_ascii = False
|
||||||
|
|
||||||
# 设置日志
|
# 设置日志
|
||||||
logger = setup_logger('mirofish')
|
logger = setup_logger('crowdsight')
|
||||||
|
|
||||||
# 只在 reloader 子进程中打印启动信息(避免 debug 模式下打印两次)
|
# 只在 reloader 子进程中打印启动信息(避免 debug 模式下打印两次)
|
||||||
is_reloader_process = os.environ.get('WERKZEUG_RUN_MAIN') == 'true'
|
is_reloader_process = os.environ.get('WERKZEUG_RUN_MAIN') == 'true'
|
||||||
@@ -36,7 +36,7 @@ def create_app(config_class=Config):
|
|||||||
|
|
||||||
if should_log_startup:
|
if should_log_startup:
|
||||||
logger.info("=" * 50)
|
logger.info("=" * 50)
|
||||||
logger.info("MiroFish Backend 启动中...")
|
logger.info("CrowdSight Backend 启动中...")
|
||||||
logger.info("=" * 50)
|
logger.info("=" * 50)
|
||||||
|
|
||||||
# 启用CORS
|
# 启用CORS
|
||||||
@@ -51,14 +51,14 @@ def create_app(config_class=Config):
|
|||||||
# 请求日志中间件
|
# 请求日志中间件
|
||||||
@app.before_request
|
@app.before_request
|
||||||
def log_request():
|
def log_request():
|
||||||
logger = get_logger('mirofish.request')
|
logger = get_logger('crowdsight.request')
|
||||||
logger.debug(f"请求: {request.method} {request.path}")
|
logger.debug(f"请求: {request.method} {request.path}")
|
||||||
if request.content_type and 'json' in request.content_type:
|
if request.content_type and 'json' in request.content_type:
|
||||||
logger.debug(f"请求体: {request.get_json(silent=True)}")
|
logger.debug(f"请求体: {request.get_json(silent=True)}")
|
||||||
|
|
||||||
@app.after_request
|
@app.after_request
|
||||||
def log_response(response):
|
def log_response(response):
|
||||||
logger = get_logger('mirofish.request')
|
logger = get_logger('crowdsight.request')
|
||||||
logger.debug(f"响应: {response.status_code}")
|
logger.debug(f"响应: {response.status_code}")
|
||||||
return response
|
return response
|
||||||
|
|
||||||
@@ -71,10 +71,10 @@ def create_app(config_class=Config):
|
|||||||
# 健康检查
|
# 健康检查
|
||||||
@app.route('/health')
|
@app.route('/health')
|
||||||
def health():
|
def health():
|
||||||
return {'status': 'ok', 'service': 'MiroFish Backend'}
|
return {'status': 'ok', 'service': 'CrowdSight Backend'}
|
||||||
|
|
||||||
if should_log_startup:
|
if should_log_startup:
|
||||||
logger.info("MiroFish Backend 启动完成")
|
logger.info("CrowdSight Backend 启动完成")
|
||||||
|
|
||||||
return app
|
return app
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ from ..models.task import TaskManager, TaskStatus
|
|||||||
from ..models.project import ProjectManager, ProjectStatus
|
from ..models.project import ProjectManager, ProjectStatus
|
||||||
|
|
||||||
# 获取日志器
|
# 获取日志器
|
||||||
logger = get_logger('mirofish.api')
|
logger = get_logger('crowdsight.api')
|
||||||
|
|
||||||
|
|
||||||
def allowed_file(filename: str) -> bool:
|
def allowed_file(filename: str) -> bool:
|
||||||
@@ -337,7 +337,7 @@ def build_graph():
|
|||||||
project.error = None
|
project.error = None
|
||||||
|
|
||||||
# 获取配置
|
# 获取配置
|
||||||
graph_name = data.get('graph_name', project.name or 'MiroFish Graph')
|
graph_name = data.get('graph_name', project.name or 'CrowdSight Graph')
|
||||||
chunk_size = data.get('chunk_size', project.chunk_size or Config.DEFAULT_CHUNK_SIZE)
|
chunk_size = data.get('chunk_size', project.chunk_size or Config.DEFAULT_CHUNK_SIZE)
|
||||||
chunk_overlap = data.get('chunk_overlap', project.chunk_overlap or Config.DEFAULT_CHUNK_OVERLAP)
|
chunk_overlap = data.get('chunk_overlap', project.chunk_overlap or Config.DEFAULT_CHUNK_OVERLAP)
|
||||||
|
|
||||||
@@ -377,7 +377,7 @@ def build_graph():
|
|||||||
# 启动后台任务
|
# 启动后台任务
|
||||||
def build_task():
|
def build_task():
|
||||||
set_locale(current_locale)
|
set_locale(current_locale)
|
||||||
build_logger = get_logger('mirofish.build')
|
build_logger = get_logger('crowdsight.build')
|
||||||
try:
|
try:
|
||||||
build_logger.info(f"[{task_id}] 开始构建图谱...")
|
build_logger.info(f"[{task_id}] 开始构建图谱...")
|
||||||
task_manager.update_task(
|
task_manager.update_task(
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ from ..models.task import TaskManager, TaskStatus
|
|||||||
from ..utils.logger import get_logger
|
from ..utils.logger import get_logger
|
||||||
from ..utils.locale import t, get_locale, set_locale
|
from ..utils.locale import t, get_locale, set_locale
|
||||||
|
|
||||||
logger = get_logger('mirofish.api.report')
|
logger = get_logger('crowdsight.api.report')
|
||||||
|
|
||||||
|
|
||||||
# ============== 报告生成接口 ==============
|
# ============== 报告生成接口 ==============
|
||||||
@@ -939,7 +939,7 @@ def search_graph_tool():
|
|||||||
|
|
||||||
请求(JSON):
|
请求(JSON):
|
||||||
{
|
{
|
||||||
"graph_id": "mirofish_xxxx",
|
"graph_id": "crowdsight_xxxx",
|
||||||
"query": "搜索查询",
|
"query": "搜索查询",
|
||||||
"limit": 10
|
"limit": 10
|
||||||
}
|
}
|
||||||
@@ -987,7 +987,7 @@ def get_graph_statistics_tool():
|
|||||||
|
|
||||||
请求(JSON):
|
请求(JSON):
|
||||||
{
|
{
|
||||||
"graph_id": "mirofish_xxxx"
|
"graph_id": "crowdsight_xxxx"
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ from ..utils.logger import get_logger
|
|||||||
from ..utils.locale import t, get_locale, set_locale
|
from ..utils.locale import t, get_locale, set_locale
|
||||||
from ..models.project import ProjectManager
|
from ..models.project import ProjectManager
|
||||||
|
|
||||||
logger = get_logger('mirofish.api.simulation')
|
logger = get_logger('crowdsight.api.simulation')
|
||||||
|
|
||||||
|
|
||||||
# Interview prompt 优化前缀
|
# Interview prompt 优化前缀
|
||||||
@@ -172,7 +172,7 @@ def create_simulation():
|
|||||||
请求(JSON):
|
请求(JSON):
|
||||||
{
|
{
|
||||||
"project_id": "proj_xxxx", // 必填
|
"project_id": "proj_xxxx", // 必填
|
||||||
"graph_id": "mirofish_xxxx", // 可选,如不提供则从project获取
|
"graph_id": "crowdsight_xxxx", // 可选,如不提供则从project获取
|
||||||
"enable_twitter": true, // 可选,默认true
|
"enable_twitter": true, // 可选,默认true
|
||||||
"enable_reddit": true // 可选,默认true
|
"enable_reddit": true // 可选,默认true
|
||||||
}
|
}
|
||||||
@@ -183,7 +183,7 @@ def create_simulation():
|
|||||||
"data": {
|
"data": {
|
||||||
"simulation_id": "sim_xxxx",
|
"simulation_id": "sim_xxxx",
|
||||||
"project_id": "proj_xxxx",
|
"project_id": "proj_xxxx",
|
||||||
"graph_id": "mirofish_xxxx",
|
"graph_id": "crowdsight_xxxx",
|
||||||
"status": "created",
|
"status": "created",
|
||||||
"enable_twitter": true,
|
"enable_twitter": true,
|
||||||
"enable_reddit": true,
|
"enable_reddit": true,
|
||||||
@@ -1381,7 +1381,7 @@ def generate_profiles():
|
|||||||
|
|
||||||
请求(JSON):
|
请求(JSON):
|
||||||
{
|
{
|
||||||
"graph_id": "mirofish_xxxx", // 必填
|
"graph_id": "crowdsight_xxxx", // 必填
|
||||||
"entity_types": ["Student"], // 可选
|
"entity_types": ["Student"], // 可选
|
||||||
"use_llm": true, // 可选
|
"use_llm": true, // 可选
|
||||||
"platform": "reddit" // 可选
|
"platform": "reddit" // 可选
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import os
|
|||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
# 加载项目根目录的 .env 文件
|
# 加载项目根目录的 .env 文件
|
||||||
# 路径: MiroFish/.env (相对于 backend/app/config.py)
|
# 路径: CrowdSight/.env (相对于 backend/app/config.py)
|
||||||
project_root_env = os.path.join(os.path.dirname(__file__), '../../.env')
|
project_root_env = os.path.join(os.path.dirname(__file__), '../../.env')
|
||||||
|
|
||||||
if os.path.exists(project_root_env):
|
if os.path.exists(project_root_env):
|
||||||
@@ -62,7 +62,7 @@ class Config:
|
|||||||
"""Flask配置类"""
|
"""Flask配置类"""
|
||||||
|
|
||||||
# Flask配置
|
# Flask配置
|
||||||
SECRET_KEY = os.environ.get('SECRET_KEY', 'mirofish-secret-key')
|
SECRET_KEY = os.environ.get('SECRET_KEY', 'crowdsight-secret-key')
|
||||||
DEBUG = os.environ.get('FLASK_DEBUG', 'True').lower() == 'true'
|
DEBUG = os.environ.get('FLASK_DEBUG', 'True').lower() == 'true'
|
||||||
|
|
||||||
# JSON配置 - 禁用ASCII转义,让中文直接显示(而不是 \uXXXX 格式)
|
# JSON配置 - 禁用ASCII转义,让中文直接显示(而不是 \uXXXX 格式)
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ class GraphBuilderService:
|
|||||||
self,
|
self,
|
||||||
text: str,
|
text: str,
|
||||||
ontology: Dict[str, Any],
|
ontology: Dict[str, Any],
|
||||||
graph_name: str = "MiroFish Graph",
|
graph_name: str = "CrowdSight Graph",
|
||||||
chunk_size: int = 500,
|
chunk_size: int = 500,
|
||||||
chunk_overlap: int = 50,
|
chunk_overlap: int = 50,
|
||||||
batch_size: int = 3
|
batch_size: int = 3
|
||||||
@@ -192,12 +192,12 @@ class GraphBuilderService:
|
|||||||
|
|
||||||
def create_graph(self, name: str) -> str:
|
def create_graph(self, name: str) -> str:
|
||||||
"""创建Zep图谱(公开方法)"""
|
"""创建Zep图谱(公开方法)"""
|
||||||
graph_id = f"mirofish_{uuid.uuid4().hex[:16]}"
|
graph_id = f"crowdsight_{uuid.uuid4().hex[:16]}"
|
||||||
|
|
||||||
self.client.graph.create(
|
self.client.graph.create(
|
||||||
graph_id=graph_id,
|
graph_id=graph_id,
|
||||||
name=name,
|
name=name,
|
||||||
description="MiroFish Social Simulation Graph"
|
description="CrowdSight Social Simulation Graph"
|
||||||
)
|
)
|
||||||
|
|
||||||
return graph_id
|
return graph_id
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ from ..utils.logger import get_logger
|
|||||||
from ..utils.locale import get_language_instruction, get_locale, set_locale, t
|
from ..utils.locale import get_language_instruction, get_locale, set_locale, t
|
||||||
from .zep_entity_reader import EntityNode, ZepEntityReader
|
from .zep_entity_reader import EntityNode, ZepEntityReader
|
||||||
|
|
||||||
logger = get_logger('mirofish.oasis_profile')
|
logger = get_logger('crowdsight.oasis_profile')
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@@ -410,7 +410,7 @@ class OntologyGenerator:
|
|||||||
code_lines = [
|
code_lines = [
|
||||||
'"""',
|
'"""',
|
||||||
'自定义实体类型定义',
|
'自定义实体类型定义',
|
||||||
'由MiroFish自动生成,用于社会舆论模拟',
|
'Auto-generated by CrowdSight,用于社会舆论模拟',
|
||||||
'"""',
|
'"""',
|
||||||
'',
|
'',
|
||||||
'from pydantic import Field',
|
'from pydantic import Field',
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ from .zep_tools import (
|
|||||||
InterviewResult
|
InterviewResult
|
||||||
)
|
)
|
||||||
|
|
||||||
logger = get_logger('mirofish.report_agent')
|
logger = get_logger('crowdsight.report_agent')
|
||||||
|
|
||||||
|
|
||||||
class ReportLogger:
|
class ReportLogger:
|
||||||
@@ -353,8 +353,8 @@ class ReportConsoleLogger:
|
|||||||
|
|
||||||
# 添加到 report_agent 相关的 logger
|
# 添加到 report_agent 相关的 logger
|
||||||
loggers_to_attach = [
|
loggers_to_attach = [
|
||||||
'mirofish.report_agent',
|
'crowdsight.report_agent',
|
||||||
'mirofish.zep_tools',
|
'crowdsight.zep_tools',
|
||||||
]
|
]
|
||||||
|
|
||||||
for logger_name in loggers_to_attach:
|
for logger_name in loggers_to_attach:
|
||||||
@@ -369,8 +369,8 @@ class ReportConsoleLogger:
|
|||||||
|
|
||||||
if self._file_handler:
|
if self._file_handler:
|
||||||
loggers_to_detach = [
|
loggers_to_detach = [
|
||||||
'mirofish.report_agent',
|
'crowdsight.report_agent',
|
||||||
'mirofish.zep_tools',
|
'crowdsight.zep_tools',
|
||||||
]
|
]
|
||||||
|
|
||||||
for logger_name in loggers_to_detach:
|
for logger_name in loggers_to_detach:
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ from ..utils.logger import get_logger
|
|||||||
from ..utils.locale import get_language_instruction, t
|
from ..utils.locale import get_language_instruction, t
|
||||||
from .zep_entity_reader import EntityNode, ZepEntityReader
|
from .zep_entity_reader import EntityNode, ZepEntityReader
|
||||||
|
|
||||||
logger = get_logger('mirofish.simulation_config')
|
logger = get_logger('crowdsight.simulation_config')
|
||||||
|
|
||||||
# 中国作息时间配置(北京时间)
|
# 中国作息时间配置(北京时间)
|
||||||
CHINA_TIMEZONE_CONFIG = {
|
CHINA_TIMEZONE_CONFIG = {
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ from enum import Enum
|
|||||||
|
|
||||||
from ..utils.logger import get_logger
|
from ..utils.logger import get_logger
|
||||||
|
|
||||||
logger = get_logger('mirofish.simulation_ipc')
|
logger = get_logger('crowdsight.simulation_ipc')
|
||||||
|
|
||||||
|
|
||||||
class CommandType(str, Enum):
|
class CommandType(str, Enum):
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ from .oasis_profile_generator import OasisProfileGenerator, OasisAgentProfile
|
|||||||
from .simulation_config_generator import SimulationConfigGenerator, SimulationParameters
|
from .simulation_config_generator import SimulationConfigGenerator, SimulationParameters
|
||||||
from ..utils.locale import t
|
from ..utils.locale import t
|
||||||
|
|
||||||
logger = get_logger('mirofish.simulation')
|
logger = get_logger('crowdsight.simulation')
|
||||||
|
|
||||||
|
|
||||||
class SimulationStatus(str, Enum):
|
class SimulationStatus(str, Enum):
|
||||||
@@ -520,7 +520,7 @@ class SimulationManager:
|
|||||||
"parallel": f"python {scripts_dir}/run_parallel_simulation.py --config {config_path}",
|
"parallel": f"python {scripts_dir}/run_parallel_simulation.py --config {config_path}",
|
||||||
},
|
},
|
||||||
"instructions": (
|
"instructions": (
|
||||||
f"1. 激活conda环境: conda activate MiroFish\n"
|
f"1. 激活conda环境: conda activate CrowdSight\n"
|
||||||
f"2. 运行模拟 (脚本位于 {scripts_dir}):\n"
|
f"2. 运行模拟 (脚本位于 {scripts_dir}):\n"
|
||||||
f" - 单独运行Twitter: python {scripts_dir}/run_twitter_simulation.py --config {config_path}\n"
|
f" - 单独运行Twitter: python {scripts_dir}/run_twitter_simulation.py --config {config_path}\n"
|
||||||
f" - 单独运行Reddit: python {scripts_dir}/run_reddit_simulation.py --config {config_path}\n"
|
f" - 单独运行Reddit: python {scripts_dir}/run_reddit_simulation.py --config {config_path}\n"
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ from ..utils.locale import get_locale, set_locale
|
|||||||
from .zep_graph_memory_updater import ZepGraphMemoryManager
|
from .zep_graph_memory_updater import ZepGraphMemoryManager
|
||||||
from .simulation_ipc import SimulationIPCClient, CommandType, IPCResponse
|
from .simulation_ipc import SimulationIPCClient, CommandType, IPCResponse
|
||||||
|
|
||||||
logger = get_logger('mirofish.simulation_runner')
|
logger = get_logger('crowdsight.simulation_runner')
|
||||||
|
|
||||||
# 标记是否已注册清理函数
|
# 标记是否已注册清理函数
|
||||||
_cleanup_registered = False
|
_cleanup_registered = False
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ from ..config import Config
|
|||||||
from ..utils.logger import get_logger
|
from ..utils.logger import get_logger
|
||||||
from ..utils.zep_paging import fetch_all_nodes, fetch_all_edges
|
from ..utils.zep_paging import fetch_all_nodes, fetch_all_edges
|
||||||
|
|
||||||
logger = get_logger('mirofish.zep_entity_reader')
|
logger = get_logger('crowdsight.zep_entity_reader')
|
||||||
|
|
||||||
# 用于泛型返回类型
|
# 用于泛型返回类型
|
||||||
T = TypeVar('T')
|
T = TypeVar('T')
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ from ..config import Config
|
|||||||
from ..utils.logger import get_logger
|
from ..utils.logger import get_logger
|
||||||
from ..utils.locale import get_locale, set_locale
|
from ..utils.locale import get_locale, set_locale
|
||||||
|
|
||||||
logger = get_logger('mirofish.zep_graph_memory_updater')
|
logger = get_logger('crowdsight.zep_graph_memory_updater')
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ from ..utils.llm_client import LLMClient
|
|||||||
from ..utils.locale import get_locale, t
|
from ..utils.locale import get_locale, t
|
||||||
from ..utils.zep_paging import fetch_all_nodes, fetch_all_edges
|
from ..utils.zep_paging import fetch_all_nodes, fetch_all_edges
|
||||||
|
|
||||||
logger = get_logger('mirofish.zep_tools')
|
logger = get_logger('crowdsight.zep_tools')
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ def _ensure_utf8_stdout():
|
|||||||
LOG_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), 'logs')
|
LOG_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), 'logs')
|
||||||
|
|
||||||
|
|
||||||
def setup_logger(name: str = 'mirofish', level: int = logging.DEBUG) -> logging.Logger:
|
def setup_logger(name: str = 'crowdsight', level: int = logging.DEBUG) -> logging.Logger:
|
||||||
"""
|
"""
|
||||||
设置日志器
|
设置日志器
|
||||||
|
|
||||||
@@ -88,7 +88,7 @@ def setup_logger(name: str = 'mirofish', level: int = logging.DEBUG) -> logging.
|
|||||||
return logger
|
return logger
|
||||||
|
|
||||||
|
|
||||||
def get_logger(name: str = 'mirofish') -> logging.Logger:
|
def get_logger(name: str = 'crowdsight') -> logging.Logger:
|
||||||
"""
|
"""
|
||||||
获取日志器(如果不存在则创建)
|
获取日志器(如果不存在则创建)
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import functools
|
|||||||
from typing import Callable, Any, Optional, Type, Tuple
|
from typing import Callable, Any, Optional, Type, Tuple
|
||||||
from ..utils.logger import get_logger
|
from ..utils.logger import get_logger
|
||||||
|
|
||||||
logger = get_logger('mirofish.retry')
|
logger = get_logger('crowdsight.retry')
|
||||||
|
|
||||||
|
|
||||||
def retry_with_backoff(
|
def retry_with_backoff(
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ from zep_cloud.client import Zep
|
|||||||
|
|
||||||
from .logger import get_logger
|
from .logger import get_logger
|
||||||
|
|
||||||
logger = get_logger('mirofish.zep_paging')
|
logger = get_logger('crowdsight.zep_paging')
|
||||||
|
|
||||||
_DEFAULT_PAGE_SIZE = 100
|
_DEFAULT_PAGE_SIZE = 100
|
||||||
_MAX_NODES = 2000
|
_MAX_NODES = 2000
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "mirofish-backend"
|
name = "crowdsight-backend"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
description = "MiroFish - 简洁通用的群体智能引擎,预测万物"
|
description = "CrowdSight - 简洁通用的群体智能引擎,预测万物"
|
||||||
requires-python = ">=3.11,<3.13"
|
requires-python = ">=3.11,<3.13"
|
||||||
license = { text = "AGPL-3.0" }
|
license = { text = "AGPL-3.0" }
|
||||||
authors = [
|
authors = [
|
||||||
{ name = "MiroFish Team" }
|
{ name = "CrowdSight Team" }
|
||||||
]
|
]
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# ===========================================
|
# ===========================================
|
||||||
# MiroFish Backend Dependencies
|
# CrowdSight Backend Dependencies
|
||||||
# ===========================================
|
# ===========================================
|
||||||
# Python 3.11+ required
|
# Python 3.11+ required
|
||||||
# Install: pip install -r requirements.txt
|
# Install: pip install -r requirements.txt
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
"""
|
"""
|
||||||
MiroFish Backend 启动入口
|
CrowdSight Backend 启动入口
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
services:
|
services:
|
||||||
mirofish:
|
crowdsight:
|
||||||
image: ghcr.io/666ghj/mirofish:latest
|
image: ghcr.io/666ghj/crowdsight:latest
|
||||||
# 加速镜像(如拉取缓慢可替换上方地址)
|
# 加速镜像(如拉取缓慢可替换上方地址)
|
||||||
# image: ghcr.nju.edu.cn/666ghj/mirofish:latest
|
# image: ghcr.nju.edu.cn/666ghj/crowdsight:latest
|
||||||
container_name: mirofish
|
container_name: crowdsight
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -8,8 +8,8 @@
|
|||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<link rel="icon" type="image/png" href="/icon.png" />
|
<link rel="icon" type="image/png" href="/icon.png" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<meta name="description" content="MiroFish - 社交媒体舆论模拟系统" />
|
<meta name="description" content="CrowdSight - 社交媒体舆论模拟系统" />
|
||||||
<title>MiroFish - 预测万物</title>
|
<title>CrowdSight - 预测万物</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
<div class="home-container">
|
<div class="home-container">
|
||||||
<!-- 顶部导航栏 -->
|
<!-- 顶部导航栏 -->
|
||||||
<nav class="navbar">
|
<nav class="navbar">
|
||||||
<div class="nav-brand">MIROFISH</div>
|
<div class="nav-brand">CROWDSIGHT</div>
|
||||||
<div class="nav-links">
|
<div class="nav-links">
|
||||||
<LanguageSwitcher />
|
<LanguageSwitcher />
|
||||||
<a href="https://github.com/666ghj/MiroFish" target="_blank" class="github-link">
|
<a href="https://github.com/666ghj/CrowdSight" target="_blank" class="github-link">
|
||||||
{{ $t('nav.visitGithub') }} <span class="arrow">↗</span>
|
{{ $t('nav.visitGithub') }} <span class="arrow">↗</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@@ -44,7 +44,7 @@
|
|||||||
<div class="hero-right">
|
<div class="hero-right">
|
||||||
<!-- Logo 区域 -->
|
<!-- Logo 区域 -->
|
||||||
<div class="logo-container">
|
<div class="logo-container">
|
||||||
<img src="../assets/logo/MiroFish_logo_left.jpeg" alt="MiroFish Logo" class="hero-logo" />
|
<img src="../assets/logo/CrowdSight_logo_left.jpeg" alt="CrowdSight Logo" class="hero-logo" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button class="scroll-down-btn" @click="scrollToBottom">
|
<button class="scroll-down-btn" @click="scrollToBottom">
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<header class="app-header">
|
<header class="app-header">
|
||||||
<div class="header-left">
|
<div class="header-left">
|
||||||
<div class="brand" @click="router.push('/')">MIROFISH</div>
|
<div class="brand" @click="router.push('/')">CROWDSIGHT</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<header class="app-header">
|
<header class="app-header">
|
||||||
<div class="header-left">
|
<div class="header-left">
|
||||||
<div class="brand" @click="router.push('/')">MIROFISH</div>
|
<div class="brand" @click="router.push('/')">CROWDSIGHT</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<div class="process-page">
|
<div class="process-page">
|
||||||
<!-- 顶部导航栏 -->
|
<!-- 顶部导航栏 -->
|
||||||
<nav class="navbar">
|
<nav class="navbar">
|
||||||
<div class="nav-brand" @click="goHome">MIROFISH</div>
|
<div class="nav-brand" @click="goHome">CROWDSIGHT</div>
|
||||||
|
|
||||||
<!-- 中间步骤指示器 -->
|
<!-- 中间步骤指示器 -->
|
||||||
<div class="nav-center">
|
<div class="nav-center">
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<header class="app-header">
|
<header class="app-header">
|
||||||
<div class="header-left">
|
<div class="header-left">
|
||||||
<div class="brand" @click="router.push('/')">MIROFISH</div>
|
<div class="brand" @click="router.push('/')">CROWDSIGHT</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<header class="app-header">
|
<header class="app-header">
|
||||||
<div class="header-left">
|
<div class="header-left">
|
||||||
<div class="brand" @click="router.push('/')">MIROFISH</div>
|
<div class="brand" @click="router.push('/')">CROWDSIGHT</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<!-- Header -->
|
<!-- Header -->
|
||||||
<header class="app-header">
|
<header class="app-header">
|
||||||
<div class="header-left">
|
<div class="header-left">
|
||||||
<div class="brand" @click="router.push('/')">MIROFISH</div>
|
<div class="brand" @click="router.push('/')">CROWDSIGHT</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
|
|||||||
@@ -26,8 +26,8 @@
|
|||||||
"files": "files"
|
"files": "files"
|
||||||
},
|
},
|
||||||
"meta": {
|
"meta": {
|
||||||
"title": "MiroFish - Predict Everything",
|
"title": "CrowdSight - Predict Everything",
|
||||||
"description": "MiroFish - Social Media Opinion Simulation System"
|
"description": "CrowdSight - Social Media Opinion Simulation System"
|
||||||
},
|
},
|
||||||
"nav": {
|
"nav": {
|
||||||
"visitGithub": "Visit our Github page"
|
"visitGithub": "Visit our Github page"
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
"heroTitle1": "Upload Reports,",
|
"heroTitle1": "Upload Reports,",
|
||||||
"heroTitle2": "Predict the Future",
|
"heroTitle2": "Predict the Future",
|
||||||
"heroDesc": "From a single document, {brand} extracts reality seeds to auto-generate a parallel world with up to {agentScale}. Inject variables from a god's-eye view to find the {optimalSolution} in complex group dynamics.",
|
"heroDesc": "From a single document, {brand} extracts reality seeds to auto-generate a parallel world with up to {agentScale}. Inject variables from a god's-eye view to find the {optimalSolution} in complex group dynamics.",
|
||||||
"heroDescBrand": "MiroFish",
|
"heroDescBrand": "CrowdSight",
|
||||||
"heroDescAgentScale": "million-scale Agents",
|
"heroDescAgentScale": "million-scale Agents",
|
||||||
"heroDescOptimalSolution": "\"local optimum\"",
|
"heroDescOptimalSolution": "\"local optimum\"",
|
||||||
"slogan": "Let Agents rehearse the future, let decisions prevail",
|
"slogan": "Let Agents rehearse the future, let decisions prevail",
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
"inputParams": "Input Parameters",
|
"inputParams": "Input Parameters",
|
||||||
"simulationPrompt": ">_ 02 / Simulation Prompt",
|
"simulationPrompt": ">_ 02 / Simulation Prompt",
|
||||||
"promptPlaceholder": "// Describe your simulation or prediction requirement in natural language",
|
"promptPlaceholder": "// Describe your simulation or prediction requirement in natural language",
|
||||||
"engineBadge": "Engine: MiroFish-V1.0",
|
"engineBadge": "Engine: CrowdSight-V1.0",
|
||||||
"startEngine": "Start Engine",
|
"startEngine": "Start Engine",
|
||||||
"initializing": "Initializing..."
|
"initializing": "Initializing..."
|
||||||
},
|
},
|
||||||
@@ -151,7 +151,7 @@
|
|||||||
"setupComplete": "Setup Complete",
|
"setupComplete": "Setup Complete",
|
||||||
"setupCompleteDesc": "Simulation environment is ready. You can now start the simulation.",
|
"setupCompleteDesc": "Simulation environment is ready. You can now start the simulation.",
|
||||||
"roundsConfig": "Simulation Rounds Configuration",
|
"roundsConfig": "Simulation Rounds Configuration",
|
||||||
"roundsConfigDesc": "MiroFish auto-plans to simulate {hours} real-world hours, each round representing {minutesPerRound} minutes of elapsed time",
|
"roundsConfigDesc": "CrowdSight auto-plans to simulate {hours} real-world hours, each round representing {minutesPerRound} minutes of elapsed time",
|
||||||
"customToggle": "Custom",
|
"customToggle": "Custom",
|
||||||
"roundsUnit": "rounds",
|
"roundsUnit": "rounds",
|
||||||
"estimatedDuration": "For 100 Agents: est. ~{minutes} minutes",
|
"estimatedDuration": "For 100 Agents: est. ~{minutes} minutes",
|
||||||
@@ -263,7 +263,7 @@
|
|||||||
"selectChatTarget": "Select chat target",
|
"selectChatTarget": "Select chat target",
|
||||||
"sendSurvey": "Send survey to the world",
|
"sendSurvey": "Send survey to the world",
|
||||||
"reportAgentChat": "Report Agent - Chat",
|
"reportAgentChat": "Report Agent - Chat",
|
||||||
"reportAgentDesc": "A conversational version of the report generation agent with access to 4 professional tools and MiroFish's complete memory",
|
"reportAgentDesc": "A conversational version of the report generation agent with access to 4 professional tools and CrowdSight's complete memory",
|
||||||
"toolInsightForge": "InsightForge Deep Attribution",
|
"toolInsightForge": "InsightForge Deep Attribution",
|
||||||
"toolInsightForgeDesc": "Aligns real-world seed data with simulation state, combining Global/Local Memory for cross-temporal deep attribution analysis",
|
"toolInsightForgeDesc": "Aligns real-world seed data with simulation state, combining Global/Local Memory for cross-temporal deep attribution analysis",
|
||||||
"toolPanoramaSearch": "PanoramaSearch Full Tracking",
|
"toolPanoramaSearch": "PanoramaSearch Full Tracking",
|
||||||
|
|||||||
@@ -26,8 +26,8 @@
|
|||||||
"files": "ไฟล์"
|
"files": "ไฟล์"
|
||||||
},
|
},
|
||||||
"meta": {
|
"meta": {
|
||||||
"title": "MiroFish - พยากรณ์ทุกสิ่ง",
|
"title": "CrowdSight - พยากรณ์ทุกสิ่ง",
|
||||||
"description": "MiroFish - ระบบจำลองความคิดเห็นบนโซเชียลมีเดีย"
|
"description": "CrowdSight - ระบบจำลองความคิดเห็นบนโซเชียลมีเดีย"
|
||||||
},
|
},
|
||||||
"nav": {
|
"nav": {
|
||||||
"visitGithub": "เยี่ยมชมหน้า Github ของเรา"
|
"visitGithub": "เยี่ยมชมหน้า Github ของเรา"
|
||||||
@@ -37,8 +37,8 @@
|
|||||||
"version": "/ v0.1-Preview",
|
"version": "/ v0.1-Preview",
|
||||||
"heroTitle1": "อัปโหลดรายงาน,",
|
"heroTitle1": "อัปโหลดรายงาน,",
|
||||||
"heroTitle2": "พยากรณ์อนาคต",
|
"heroTitle2": "พยากรณ์อนาคต",
|
||||||
"heroDesc": "จากเอกสารเพียงชิ้นเดียว {brand} จะสกัดเมล็ดพันธุ์แห่งความจริงเพื่อสร้างโลกคู่ขนานโดยอัตโนมัติที่มี Agent ได้สูงสุดถึง {agentScale} ฉีดตัวแปรจากมุมมองเหนือกว่าเพื่อค้นหา {optimalSolution} ในพลวัตกลุ่มที่ซับซ้อน",
|
"heroDesc": "จากเอกสารเพียงชิ้นเดียว {brand} จะสกัดข้อมูลตั้งต้นเพื่อสร้างโลกจำลองโดยอัตโนมัติที่มี Agent ได้สูงสุดถึง {agentScale} เพิ่มตัวแปรจากมุมมองเหนือกว่าเพื่อค้นหา {optimalSolution} ในพฤติกรรมกลุ่มที่ซับซ้อน",
|
||||||
"heroDescBrand": "MiroFish",
|
"heroDescBrand": "CrowdSight",
|
||||||
"heroDescAgentScale": "ระดับล้าน Agent",
|
"heroDescAgentScale": "ระดับล้าน Agent",
|
||||||
"heroDescOptimalSolution": "\"ค่าเหมาะสมเฉพาะที่\"",
|
"heroDescOptimalSolution": "\"ค่าเหมาะสมเฉพาะที่\"",
|
||||||
"slogan": "ให้ Agent ซักซ้อมอนาคต ให้การตัดสินใจเป็นผู้ชนะ",
|
"slogan": "ให้ Agent ซักซ้อมอนาคต ให้การตัดสินใจเป็นผู้ชนะ",
|
||||||
@@ -51,23 +51,23 @@
|
|||||||
"metricHighAvailDesc": "Agent นับล้าน",
|
"metricHighAvailDesc": "Agent นับล้าน",
|
||||||
"workflowSequence": "ขั้นตอนการทำงาน",
|
"workflowSequence": "ขั้นตอนการทำงาน",
|
||||||
"step01Title": "สร้างกราฟ",
|
"step01Title": "สร้างกราฟ",
|
||||||
"step01Desc": "สกัดเมล็ดพันธุ์ & ฉีดความจำ & สร้าง GraphRAG",
|
"step01Desc": "สกัดข้อมูลตั้งต้น & เพิ่มความจำ & สร้าง GraphRAG",
|
||||||
"step02Title": "ตั้งค่าสภาพแวดล้อม",
|
"step02Title": "ตั้งค่าสภาพแวดล้อม",
|
||||||
"step02Desc": "สกัดเอนทิตี & สร้างบุคลิกภาพ & ฉีดค่าตั้ง Agent",
|
"step02Desc": "ดึงตัวละคร & สร้างบุคลิกภาพ & ฉีดค่าตั้ง Agent",
|
||||||
"step03Title": "การจำลอง",
|
"step03Title": "การจำลอง",
|
||||||
"step03Desc": "จำลองคู่ขนานสองแพลตฟอร์ม & วิเคราะห์ความต้องการอัตโนมัติ & ความจำเชิงเวลา",
|
"step03Desc": "จำลองคู่ขนานสองแพลตฟอร์ม & วิเคราะห์ความต้องการอัตโนมัติ & ความจำเชิงเวลา",
|
||||||
"step04Title": "รายงาน",
|
"step04Title": "รายงาน",
|
||||||
"step04Desc": "Report Agent โต้ตอบกับสภาพแวดล้อมหลังการจำลองผ่านเครื่องมือครบครัน",
|
"step04Desc": "Report Agent โต้ตอบกับสภาพแวดล้อมหลังการจำลองผ่านเครื่องมือครบครัน",
|
||||||
"step05Title": "การโต้ตอบ",
|
"step05Title": "การโต้ตอบ",
|
||||||
"step05Desc": "สนทนากับบุคคลที่จำลอง & พูดคุยกับ Report Agent",
|
"step05Desc": "สนทนากับบุคคลที่จำลอง & พูดคุยกับ Report Agent",
|
||||||
"realitySeed": "01 / เมล็ดพันธุ์แห่งความจริง",
|
"realitySeed": "01 / ข้อมูลตั้งต้น",
|
||||||
"supportedFormats": "รูปแบบ: PDF, MD, TXT",
|
"supportedFormats": "รูปแบบ: PDF, MD, TXT",
|
||||||
"dragToUpload": "ลากไฟล์เพื่ออัปโหลด",
|
"dragToUpload": "ลากไฟล์เพื่ออัปโหลด",
|
||||||
"orBrowse": "หรือคลิกเพื่อเลือกไฟล์",
|
"orBrowse": "หรือคลิกเพื่อเลือกไฟล์",
|
||||||
"inputParams": "พารามิเตอร์นำเข้า",
|
"inputParams": "พารามิเตอร์นำเข้า",
|
||||||
"simulationPrompt": ">_ 02 / คำสั่งจำลอง",
|
"simulationPrompt": ">_ 02 / คำสั่งจำลอง",
|
||||||
"promptPlaceholder": "// อธิบายความต้องการในการจำลองหรือพยากรณ์ของคุณเป็นภาษาธรรมชาติ",
|
"promptPlaceholder": "// อธิบายความต้องการในการจำลองหรือพยากรณ์ของคุณเป็นภาษาธรรมชาติ",
|
||||||
"engineBadge": "Engine: MiroFish-V1.0",
|
"engineBadge": "Engine: CrowdSight-V1.0",
|
||||||
"startEngine": "เริ่ม Engine",
|
"startEngine": "เริ่ม Engine",
|
||||||
"initializing": "กำลังเริ่มต้น..."
|
"initializing": "กำลังเริ่มต้น..."
|
||||||
},
|
},
|
||||||
@@ -84,15 +84,15 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"step1": {
|
"step1": {
|
||||||
"ontologyGeneration": "การสร้างออนโทโลยี",
|
"ontologyGeneration": "การสร้างโครงสร้างข้อมูล",
|
||||||
"ontologyCompleted": "สำเร็จ",
|
"ontologyCompleted": "สำเร็จ",
|
||||||
"ontologyGenerating": "กำลังสร้าง",
|
"ontologyGenerating": "กำลังสร้าง",
|
||||||
"ontologyPending": "รอดำเนินการ",
|
"ontologyPending": "รอดำเนินการ",
|
||||||
"ontologyDesc": "LLM วิเคราะห์เนื้อหาเอกสารและความต้องการในการจำลอง สกัดเมล็ดพันธุ์แห่งความจริง และสร้างโครงสร้างออนโทโลยีที่เหมาะสมโดยอัตโนมัติ",
|
"ontologyDesc": "LLM วิเคราะห์เนื้อหาเอกสารและความต้องการในการจำลอง สกัดข้อมูลตั้งต้น และสร้างโครงสร้างโครงสร้างข้อมูลที่เหมาะสมโดยอัตโนมัติ",
|
||||||
"analyzingDocs": "กำลังวิเคราะห์เอกสาร...",
|
"analyzingDocs": "กำลังวิเคราะห์เอกสาร...",
|
||||||
"graphRagBuild": "สร้าง GraphRAG",
|
"graphRagBuild": "สร้าง GraphRAG",
|
||||||
"graphRagDesc": "จากออนโทโลยีที่สร้างขึ้น เอกสารจะถูกแบ่งเป็นส่วนย่อยโดยอัตโนมัติและส่งไปยัง Zep เพื่อสร้างกราฟความรู้ สกัดเอนทิตีและความสัมพันธ์ สร้างความจำเชิงเวลาและบทสรุปชุมชน",
|
"graphRagDesc": "จากโครงสร้างข้อมูลที่สร้างขึ้น เอกสารจะถูกแบ่งเป็นส่วนย่อยโดยอัตโนมัติและส่งไปยัง Zep เพื่อสร้างแผนภูมิความรู้ ดึงตัวละครและความสัมพันธ์ สร้างความจำเชิงเวลาและบทสรุปชุมชน",
|
||||||
"entityNodes": "โหนดเอนทิตี",
|
"entityNodes": "โหนดตัวละคร",
|
||||||
"relationEdges": "เส้นเชื่อมความสัมพันธ์",
|
"relationEdges": "เส้นเชื่อมความสัมพันธ์",
|
||||||
"schemaTypes": "ประเภท Schema",
|
"schemaTypes": "ประเภท Schema",
|
||||||
"buildComplete": "สร้างเสร็จสมบูรณ์",
|
"buildComplete": "สร้างเสร็จสมบูรณ์",
|
||||||
@@ -108,15 +108,15 @@
|
|||||||
"simInstanceDesc": "สร้างอินสแตนซ์การจำลองใหม่และดึงเทมเพลตพารามิเตอร์โลก",
|
"simInstanceDesc": "สร้างอินสแตนซ์การจำลองใหม่และดึงเทมเพลตพารามิเตอร์โลก",
|
||||||
"asyncTaskDone": "งานแบบอะซิงโครนัสเสร็จสมบูรณ์",
|
"asyncTaskDone": "งานแบบอะซิงโครนัสเสร็จสมบูรณ์",
|
||||||
"generateAgentPersona": "สร้างบุคลิกภาพ Agent",
|
"generateAgentPersona": "สร้างบุคลิกภาพ Agent",
|
||||||
"generateAgentPersonaDesc": "ผสานบริบทเพื่อสกัดเอนทิตีและความสัมพันธ์จากกราฟความรู้โดยอัตโนมัติ เริ่มต้นบุคคลที่จำลอง และกำหนดพฤติกรรมและความจำที่เป็นเอกลักษณ์จากเมล็ดพันธุ์แห่งความจริง",
|
"generateAgentPersonaDesc": "ผสานบริบทเพื่อดึงตัวละครและความสัมพันธ์จากแผนภูมิความรู้โดยอัตโนมัติ เริ่มต้นบุคคลที่จำลอง และกำหนดพฤติกรรมและความจำที่เป็นเอกลักษณ์จากข้อมูลตั้งต้น",
|
||||||
"currentAgentCount": "Agent ปัจจุบัน",
|
"currentAgentCount": "Agent ปัจจุบัน",
|
||||||
"expectedAgentTotal": "Agent ทั้งหมดที่คาดหวัง",
|
"expectedAgentTotal": "Agent ทั้งหมดที่คาดหวัง",
|
||||||
"relatedTopicsCount": "หัวข้อที่เกี่ยวข้องกับเมล็ดพันธุ์แห่งความจริง",
|
"relatedTopicsCount": "หัวข้อที่เกี่ยวข้องกับข้อมูลตั้งต้น",
|
||||||
"generatedAgentPersonas": "บุคลิกภาพ Agent ที่สร้างแล้ว",
|
"generatedAgentPersonas": "บุคลิกภาพ Agent ที่สร้างแล้ว",
|
||||||
"unknownProfession": "ไม่ทราบอาชีพ",
|
"unknownProfession": "ไม่ทราบอาชีพ",
|
||||||
"noBio": "ไม่มีประวัติย่อ",
|
"noBio": "ไม่มีประวัติย่อ",
|
||||||
"dualPlatformConfig": "สร้างค่าตั้งสองแพลตฟอร์ม",
|
"dualPlatformConfig": "สร้างค่าตั้งสองแพลตฟอร์ม",
|
||||||
"dualPlatformConfigDesc": "LLM ตั้งค่าการไหลของเวลาโลก ขั้นตอนการแนะนำ ชั่วโมงที่ใช้งานของแต่ละบุคคล ความถี่ในการโพสต์ ตัวกระตุ้นเหตุการณ์ และอื่นๆ อย่างชาญฉลาดตามความต้องการและเมล็ดพันธุ์แห่งความจริง",
|
"dualPlatformConfigDesc": "LLM ตั้งค่าการไหลของเวลาโลก ขั้นตอนการแนะนำ ชั่วโมงที่ใช้งานของแต่ละบุคคล ความถี่ในการโพสต์ ตัวกระตุ้นเหตุการณ์ และอื่นๆ อย่างชาญฉลาดตามความต้องการและข้อมูลตั้งต้น",
|
||||||
"simulationDuration": "ระยะเวลาจำลอง",
|
"simulationDuration": "ระยะเวลาจำลอง",
|
||||||
"roundDuration": "ระยะเวลาต่อรอบ",
|
"roundDuration": "ระยะเวลาต่อรอบ",
|
||||||
"totalRounds": "รอบทั้งหมด",
|
"totalRounds": "รอบทั้งหมด",
|
||||||
@@ -151,7 +151,7 @@
|
|||||||
"setupComplete": "ตั้งค่าเสร็จสมบูรณ์",
|
"setupComplete": "ตั้งค่าเสร็จสมบูรณ์",
|
||||||
"setupCompleteDesc": "สภาพแวดล้อมจำลองพร้อมแล้ว คุณสามารถเริ่มการจำลองได้",
|
"setupCompleteDesc": "สภาพแวดล้อมจำลองพร้อมแล้ว คุณสามารถเริ่มการจำลองได้",
|
||||||
"roundsConfig": "กำหนดค่ารอบการจำลอง",
|
"roundsConfig": "กำหนดค่ารอบการจำลอง",
|
||||||
"roundsConfigDesc": "MiroFish วางแผนอัตโนมัติเพื่อจำลอง {hours} ชั่วโมงโลกจริง แต่ละรอบแทนเวลาที่ผ่านไป {minutesPerRound} นาที",
|
"roundsConfigDesc": "CrowdSight วางแผนอัตโนมัติเพื่อจำลอง {hours} ชั่วโมงโลกจริง แต่ละรอบแทนเวลาที่ผ่านไป {minutesPerRound} นาที",
|
||||||
"customToggle": "กำหนดเอง",
|
"customToggle": "กำหนดเอง",
|
||||||
"roundsUnit": "รอบ",
|
"roundsUnit": "รอบ",
|
||||||
"estimatedDuration": "สำหรับ 100 Agent: ประมาณ ~{minutes} นาที",
|
"estimatedDuration": "สำหรับ 100 Agent: ประมาณ ~{minutes} นาที",
|
||||||
@@ -165,14 +165,14 @@
|
|||||||
"profileModalCountry": "ประเทศ/ภูมิภาค",
|
"profileModalCountry": "ประเทศ/ภูมิภาค",
|
||||||
"profileModalMbti": "MBTI ที่ปรากฏ",
|
"profileModalMbti": "MBTI ที่ปรากฏ",
|
||||||
"profileModalBio": "ประวัติบุคลิกภาพ",
|
"profileModalBio": "ประวัติบุคลิกภาพ",
|
||||||
"profileModalTopics": "หัวข้อที่เกี่ยวข้องกับเมล็ดพันธุ์แห่งความจริง",
|
"profileModalTopics": "หัวข้อที่เกี่ยวข้องกับข้อมูลตั้งต้น",
|
||||||
"profileModalPersona": "ภูมิหลังบุคลิกภาพโดยละเอียด",
|
"profileModalPersona": "ภูมิหลังบุคลิกภาพโดยละเอียด",
|
||||||
"personaDimExperience": "ประสบการณ์เหตุการณ์เต็มรูปแบบ",
|
"personaDimExperience": "ประสบการณ์เหตุการณ์เต็มรูปแบบ",
|
||||||
"personaDimExperienceDesc": "เส้นทางพฤติกรรมที่สมบูรณ์ในเหตุการณ์นี้",
|
"personaDimExperienceDesc": "เส้นทางพฤติกรรมที่สมบูรณ์ในเหตุการณ์นี้",
|
||||||
"personaDimBehavior": "โปรไฟล์พฤติกรรม",
|
"personaDimBehavior": "โปรไฟล์พฤติกรรม",
|
||||||
"personaDimBehaviorDesc": "สรุปประสบการณ์และความชอบด้านพฤติกรรม",
|
"personaDimBehaviorDesc": "สรุปประสบการณ์และความชอบด้านพฤติกรรม",
|
||||||
"personaDimMemory": "รอยประทับความจำที่เป็นเอกลักษณ์",
|
"personaDimMemory": "รอยประทับความจำที่เป็นเอกลักษณ์",
|
||||||
"personaDimMemoryDesc": "ความจำที่เกิดจากเมล็ดพันธุ์แห่งความจริง",
|
"personaDimMemoryDesc": "ความจำที่เกิดจากข้อมูลตั้งต้น",
|
||||||
"personaDimSocial": "เครือข่ายสังคม",
|
"personaDimSocial": "เครือข่ายสังคม",
|
||||||
"personaDimSocialDesc": "การเชื่อมต่อระหว่างบุคคลและกราฟการโต้ตอบ",
|
"personaDimSocialDesc": "การเชื่อมต่อระหว่างบุคคลและกราฟการโต้ตอบ",
|
||||||
"genderMale": "ชาย",
|
"genderMale": "ชาย",
|
||||||
@@ -222,28 +222,28 @@
|
|||||||
"expandAllEntities": "แสดงทั้งหมด {count} ▼",
|
"expandAllEntities": "แสดงทั้งหมด {count} ▼",
|
||||||
"scenarioLabel": "สถานการณ์: ",
|
"scenarioLabel": "สถานการณ์: ",
|
||||||
"tabKeyFacts": "ข้อเท็จจริงสำคัญ ({count})",
|
"tabKeyFacts": "ข้อเท็จจริงสำคัญ ({count})",
|
||||||
"tabCoreEntities": "เอนทิตีหลัก ({count})",
|
"tabCoreEntities": "ตัวละครหลัก ({count})",
|
||||||
"tabRelationChains": "สายโซ่ความสัมพันธ์ ({count})",
|
"tabRelationChains": "สายโซ่ความสัมพันธ์ ({count})",
|
||||||
"tabSubQueries": "คำถามย่อย ({count})",
|
"tabSubQueries": "คำถามย่อย ({count})",
|
||||||
"panelKeyFacts": "ข้อเท็จจริงสำคัญล่าสุดจากความจำเชิงเวลา",
|
"panelKeyFacts": "ข้อเท็จจริงสำคัญล่าสุดจากความจำเชิงเวลา",
|
||||||
"totalCount": "ทั้งหมด {count}",
|
"totalCount": "ทั้งหมด {count}",
|
||||||
"totalEntityCount": "ทั้งหมด {count}",
|
"totalEntityCount": "ทั้งหมด {count}",
|
||||||
"panelCoreEntities": "เอนทิตีหลัก",
|
"panelCoreEntities": "ตัวละครหลัก",
|
||||||
"factCount": "{count} ข้อเท็จจริง",
|
"factCount": "{count} ข้อเท็จจริง",
|
||||||
"panelRelationChains": "สายโซ่ความสัมพันธ์",
|
"panelRelationChains": "สายโซ่ความสัมพันธ์",
|
||||||
"panelSubQueries": "คำถามย่อยจากการวิเคราะห์แบบ Drift",
|
"panelSubQueries": "คำถามย่อยจากการวิเคราะห์แบบ Drift",
|
||||||
"emptyKeyFacts": "ไม่มีข้อเท็จจริงสำคัญ",
|
"emptyKeyFacts": "ไม่มีข้อเท็จจริงสำคัญ",
|
||||||
"emptyCoreEntities": "ไม่มีเอนทิตีหลัก",
|
"emptyCoreEntities": "ไม่มีตัวละครหลัก",
|
||||||
"emptyRelationChains": "ไม่มีสายโซ่ความสัมพันธ์",
|
"emptyRelationChains": "ไม่มีสายโซ่ความสัมพันธ์",
|
||||||
"tabActiveFacts": "ข้อเท็จจริงที่ใช้งาน ({count})",
|
"tabActiveFacts": "ข้อเท็จจริงที่ใช้งาน ({count})",
|
||||||
"tabHistoricalFacts": "ข้อเท็จจริงในอดีต ({count})",
|
"tabHistoricalFacts": "ข้อเท็จจริงในอดีต ({count})",
|
||||||
"tabEntities": "เอนทิตี ({count})",
|
"tabEntities": "ตัวละคร ({count})",
|
||||||
"panelActiveFacts": "ข้อเท็จจริงที่ใช้งาน",
|
"panelActiveFacts": "ข้อเท็จจริงที่ใช้งาน",
|
||||||
"emptyActiveFacts": "ไม่มีข้อเท็จจริงที่ใช้งาน",
|
"emptyActiveFacts": "ไม่มีข้อเท็จจริงที่ใช้งาน",
|
||||||
"panelHistoricalFacts": "ข้อเท็จจริงในอดีต",
|
"panelHistoricalFacts": "ข้อเท็จจริงในอดีต",
|
||||||
"emptyHistoricalFacts": "ไม่มีข้อเท็จจริงในอดีต",
|
"emptyHistoricalFacts": "ไม่มีข้อเท็จจริงในอดีต",
|
||||||
"panelEntities": "เอนทิตี",
|
"panelEntities": "ตัวละคร",
|
||||||
"emptyEntities": "ไม่มีเอนทิตี",
|
"emptyEntities": "ไม่มีตัวละคร",
|
||||||
"searchLabel": "ค้นหา: ",
|
"searchLabel": "ค้นหา: ",
|
||||||
"tabFacts": "ข้อเท็จจริง ({count})",
|
"tabFacts": "ข้อเท็จจริง ({count})",
|
||||||
"tabEdges": "เส้นเชื่อม ({count})",
|
"tabEdges": "เส้นเชื่อม ({count})",
|
||||||
@@ -263,9 +263,9 @@
|
|||||||
"selectChatTarget": "เลือกเป้าหมายสนทนา",
|
"selectChatTarget": "เลือกเป้าหมายสนทนา",
|
||||||
"sendSurvey": "ส่งแบบสำรวจไปยังโลกจำลอง",
|
"sendSurvey": "ส่งแบบสำรวจไปยังโลกจำลอง",
|
||||||
"reportAgentChat": "Report Agent - สนทนา",
|
"reportAgentChat": "Report Agent - สนทนา",
|
||||||
"reportAgentDesc": "เวอร์ชันสนทนาของ Agent สร้างรายงาน พร้อมเข้าถึงเครื่องมือมืออาชีพ 4 ชิ้นและความจำครบถ้วนของ MiroFish",
|
"reportAgentDesc": "เวอร์ชันสนทนาของ Agent สร้างรายงาน พร้อมเข้าถึงเครื่องมือมืออาชีพ 4 ชิ้นและความจำครบถ้วนของ CrowdSight",
|
||||||
"toolInsightForge": "InsightForge การวิเคราะห์เชิงลึก",
|
"toolInsightForge": "InsightForge การวิเคราะห์เชิงลึก",
|
||||||
"toolInsightForgeDesc": "ปรับข้อมูลเมล็ดพันธุ์แห่งความจริงให้ตรงกับสถานะการจำลอง ผสาน Global/Local Memory สำหรับการวิเคราะห์เชิงลึกข้ามเวลา",
|
"toolInsightForgeDesc": "ปรับข้อมูลข้อมูลตั้งต้นให้ตรงกับสถานะการจำลอง ผสาน Global/Local Memory สำหรับการวิเคราะห์เชิงลึกข้ามเวลา",
|
||||||
"toolPanoramaSearch": "PanoramaSearch การติดตามครบถ้วน",
|
"toolPanoramaSearch": "PanoramaSearch การติดตามครบถ้วน",
|
||||||
"toolPanoramaSearchDesc": "อัลกอริทึม BFS บนกราฟที่สร้างเส้นทางการแพร่กระจายของเหตุการณ์ขึ้นใหม่ จับภาพโทโพโลยีเต็มรูปแบบของการไหลข้อมูล",
|
"toolPanoramaSearchDesc": "อัลกอริทึม BFS บนกราฟที่สร้างเส้นทางการแพร่กระจายของเหตุการณ์ขึ้นใหม่ จับภาพโทโพโลยีเต็มรูปแบบของการไหลข้อมูล",
|
||||||
"toolQuickSearch": "QuickSearch การค้นหาอย่างรวดเร็ว",
|
"toolQuickSearch": "QuickSearch การค้นหาอย่างรวดเร็ว",
|
||||||
@@ -300,7 +300,7 @@
|
|||||||
"nodeDetails": "รายละเอียดโหนด",
|
"nodeDetails": "รายละเอียดโหนด",
|
||||||
"relationship": "ความสัมพันธ์",
|
"relationship": "ความสัมพันธ์",
|
||||||
"graphDataLoading": "กำลังโหลดข้อมูลกราฟ...",
|
"graphDataLoading": "กำลังโหลดข้อมูลกราฟ...",
|
||||||
"waitingOntology": "รอการสร้างออนโทโลยี...",
|
"waitingOntology": "รอการสร้างโครงสร้างข้อมูล...",
|
||||||
"toggleMaximize": "ขยาย/คืนค่า",
|
"toggleMaximize": "ขยาย/คืนค่า",
|
||||||
"closeHint": "ปิดคำแนะนำ"
|
"closeHint": "ปิดคำแนะนำ"
|
||||||
},
|
},
|
||||||
@@ -336,16 +336,16 @@
|
|||||||
"requireProjectId": "กรุณาระบุ project_id",
|
"requireProjectId": "กรุณาระบุ project_id",
|
||||||
"configError": "ข้อผิดพลาดในการกำหนดค่า: {details}",
|
"configError": "ข้อผิดพลาดในการกำหนดค่า: {details}",
|
||||||
"zepApiKeyMissing": "ยังไม่ได้ตั้งค่า ZEP_API_KEY",
|
"zepApiKeyMissing": "ยังไม่ได้ตั้งค่า ZEP_API_KEY",
|
||||||
"ontologyNotGenerated": "ยังไม่ได้สร้างออนโทโลยี กรุณาเรียก /ontology/generate ก่อน",
|
"ontologyNotGenerated": "ยังไม่ได้สร้างโครงสร้างข้อมูล กรุณาเรียก /ontology/generate ก่อน",
|
||||||
"graphBuilding": "กำลังสร้างกราฟ อย่าส่งซ้ำ หากต้องการสร้างใหม่ เพิ่ม force: true",
|
"graphBuilding": "กำลังสร้างกราฟ อย่าส่งซ้ำ หากต้องการสร้างใหม่ เพิ่ม force: true",
|
||||||
"textNotFound": "ไม่พบเนื้อหาข้อความที่สกัดแล้ว",
|
"textNotFound": "ไม่พบเนื้อหาข้อความที่สกัดแล้ว",
|
||||||
"ontologyNotFound": "ไม่พบคำจำกัดความออนโทโลยี",
|
"ontologyNotFound": "ไม่พบคำจำกัดความโครงสร้างข้อมูล",
|
||||||
"graphBuildStarted": "เริ่มงานสร้างกราฟแล้ว สอบถามความคืบหน้าผ่าน /task/{taskId}",
|
"graphBuildStarted": "เริ่มงานสร้างกราฟแล้ว สอบถามความคืบหน้าผ่าน /task/{taskId}",
|
||||||
"graphBuildComplete": "สร้างกราฟเสร็จสมบูรณ์",
|
"graphBuildComplete": "สร้างกราฟเสร็จสมบูรณ์",
|
||||||
"buildFailed": "สร้างล้มเหลว: {error}",
|
"buildFailed": "สร้างล้มเหลว: {error}",
|
||||||
"taskNotFound": "ไม่พบงาน: {id}",
|
"taskNotFound": "ไม่พบงาน: {id}",
|
||||||
"graphDeleted": "ลบกราฟแล้ว: {id}",
|
"graphDeleted": "ลบกราฟแล้ว: {id}",
|
||||||
"entityNotFound": "ไม่พบเอนทิตี: {id}",
|
"entityNotFound": "ไม่พบตัวละคร: {id}",
|
||||||
"graphNotBuilt": "ยังไม่ได้สร้างกราฟ กรุณาเรียก /api/graph/build ก่อน",
|
"graphNotBuilt": "ยังไม่ได้สร้างกราฟ กรุณาเรียก /api/graph/build ก่อน",
|
||||||
"requireSimulationId": "กรุณาระบุ simulation_id",
|
"requireSimulationId": "กรุณาระบุ simulation_id",
|
||||||
"simulationNotFound": "ไม่พบการจำลอง: {id}",
|
"simulationNotFound": "ไม่พบการจำลอง: {id}",
|
||||||
@@ -360,7 +360,7 @@
|
|||||||
"unknownScript": "ไม่ทราบสคริปต์: {name} ที่มี: {allowed}",
|
"unknownScript": "ไม่ทราบสคริปต์: {name} ที่มี: {allowed}",
|
||||||
"scriptFileNotFound": "ไม่พบไฟล์สคริปต์: {name}",
|
"scriptFileNotFound": "ไม่พบไฟล์สคริปต์: {name}",
|
||||||
"requireGraphId": "กรุณาระบุ graph_id",
|
"requireGraphId": "กรุณาระบุ graph_id",
|
||||||
"noMatchingEntities": "ไม่พบเอนทิตีที่ตรงกัน",
|
"noMatchingEntities": "ไม่พบตัวละครที่ตรงกัน",
|
||||||
"maxRoundsPositive": "max_rounds ต้องเป็นจำนวนเต็มบวก",
|
"maxRoundsPositive": "max_rounds ต้องเป็นจำนวนเต็มบวก",
|
||||||
"maxRoundsInvalid": "max_rounds ต้องเป็นจำนวนเต็มที่ถูกต้อง",
|
"maxRoundsInvalid": "max_rounds ต้องเป็นจำนวนเต็มที่ถูกต้อง",
|
||||||
"invalidPlatform": "ประเภทแพลตฟอร์มไม่ถูกต้อง: {platform} ตัวเลือก: twitter/reddit/parallel",
|
"invalidPlatform": "ประเภทแพลตฟอร์มไม่ถูกต้อง: {platform} ตัวเลือก: twitter/reddit/parallel",
|
||||||
@@ -401,7 +401,7 @@
|
|||||||
"initGraphService": "กำลังเริ่มต้นบริการสร้างกราฟ...",
|
"initGraphService": "กำลังเริ่มต้นบริการสร้างกราฟ...",
|
||||||
"textChunking": "กำลังแบ่งข้อความเป็นส่วนย่อย...",
|
"textChunking": "กำลังแบ่งข้อความเป็นส่วนย่อย...",
|
||||||
"creatingZepGraph": "กำลังสร้างกราฟ Zep...",
|
"creatingZepGraph": "กำลังสร้างกราฟ Zep...",
|
||||||
"settingOntology": "กำลังตั้งค่าคำจำกัดความออนโทโลยี...",
|
"settingOntology": "กำลังตั้งค่าคำจำกัดความโครงสร้างข้อมูล...",
|
||||||
"addingChunks": "กำลังเพิ่ม {count} ส่วนข้อความ...",
|
"addingChunks": "กำลังเพิ่ม {count} ส่วนข้อความ...",
|
||||||
"waitingZepProcess": "รอ Zep ประมวลผลข้อมูล...",
|
"waitingZepProcess": "รอ Zep ประมวลผลข้อมูล...",
|
||||||
"fetchingGraphData": "กำลังดึงข้อมูลกราฟ...",
|
"fetchingGraphData": "กำลังดึงข้อมูลกราฟ...",
|
||||||
@@ -409,7 +409,7 @@
|
|||||||
"buildFailed": "สร้างล้มเหลว: {error}",
|
"buildFailed": "สร้างล้มเหลว: {error}",
|
||||||
"startBuildingGraph": "กำลังเริ่มสร้างกราฟ...",
|
"startBuildingGraph": "กำลังเริ่มสร้างกราฟ...",
|
||||||
"graphCreated": "สร้างกราฟแล้ว: {graphId}",
|
"graphCreated": "สร้างกราฟแล้ว: {graphId}",
|
||||||
"ontologySet": "ตั้งค่าออนโทโลยีแล้ว",
|
"ontologySet": "ตั้งค่าโครงสร้างข้อมูลแล้ว",
|
||||||
"textSplit": "แบ่งข้อความเป็น {count} ส่วน",
|
"textSplit": "แบ่งข้อความเป็น {count} ส่วน",
|
||||||
"fetchingGraphInfo": "กำลังดึงข้อมูลกราฟ...",
|
"fetchingGraphInfo": "กำลังดึงข้อมูลกราฟ...",
|
||||||
"sendingBatch": "กำลังส่งชุด {current}/{total} ({chunks} ส่วน)...",
|
"sendingBatch": "กำลังส่งชุด {current}/{total} ({chunks} ส่วน)...",
|
||||||
@@ -424,7 +424,7 @@
|
|||||||
"startPreparingEnv": "กำลังเตรียมสภาพแวดล้อมจำลอง...",
|
"startPreparingEnv": "กำลังเตรียมสภาพแวดล้อมจำลอง...",
|
||||||
"connectingZepGraph": "กำลังเชื่อมต่อกราฟ Zep...",
|
"connectingZepGraph": "กำลังเชื่อมต่อกราฟ Zep...",
|
||||||
"readingNodeData": "กำลังอ่านข้อมูลโหนด...",
|
"readingNodeData": "กำลังอ่านข้อมูลโหนด...",
|
||||||
"readingComplete": "เสร็จ พบ {count} เอนทิตี",
|
"readingComplete": "เสร็จ พบ {count} ตัวละคร",
|
||||||
"startGenerating": "กำลังเริ่มสร้าง...",
|
"startGenerating": "กำลังเริ่มสร้าง...",
|
||||||
"analyzingRequirements": "กำลังวิเคราะห์ความต้องการจำลอง...",
|
"analyzingRequirements": "กำลังวิเคราะห์ความต้องการจำลอง...",
|
||||||
"generatingOutline": "กำลังสร้างเค้าโครงรายงาน...",
|
"generatingOutline": "กำลังสร้างเค้าโครงรายงาน...",
|
||||||
@@ -454,7 +454,7 @@
|
|||||||
"agentConfigResult": "ค่าตั้ง Agent: สร้าง {count} รายการ",
|
"agentConfigResult": "ค่าตั้ง Agent: สร้าง {count} รายการ",
|
||||||
"postAssignResult": "กำหนดโพสต์: กำหนด {count} โพสต์",
|
"postAssignResult": "กำหนดโพสต์: กำหนด {count} โพสต์",
|
||||||
"profileGenerated": "[สร้างแล้ว] {name} ({type})",
|
"profileGenerated": "[สร้างแล้ว] {name} ({type})",
|
||||||
"readingGraphEntities": "กำลังอ่านเอนทิตีกราฟ",
|
"readingGraphEntities": "กำลังอ่านตัวละครกราฟ",
|
||||||
"generatingProfiles": "กำลังสร้างโปรไฟล์ Agent",
|
"generatingProfiles": "กำลังสร้างโปรไฟล์ Agent",
|
||||||
"generatingSimConfig": "กำลังสร้างค่าตั้งจำลอง",
|
"generatingSimConfig": "กำลังสร้างค่าตั้งจำลอง",
|
||||||
"preparingScripts": "กำลังเตรียมสคริปต์"
|
"preparingScripts": "กำลังเตรียมสคริปต์"
|
||||||
@@ -499,8 +499,8 @@
|
|||||||
"detectedExistingPrep": "ตรวจพบการเตรียมการที่มีอยู่ ใช้โดยตรง",
|
"detectedExistingPrep": "ตรวจพบการเตรียมการที่มีอยู่ ใช้โดยตรง",
|
||||||
"prepareTaskStarted": "เริ่มงานเตรียมการแล้ว",
|
"prepareTaskStarted": "เริ่มงานเตรียมการแล้ว",
|
||||||
"prepareTaskId": " └─ รหัสงาน: {taskId}",
|
"prepareTaskId": " └─ รหัสงาน: {taskId}",
|
||||||
"zepEntitiesFound": "พบ {count} เอนทิตีจากกราฟ Zep",
|
"zepEntitiesFound": "พบ {count} ตัวละครจากกราฟ Zep",
|
||||||
"entityTypes": " └─ ประเภทเอนทิตี: {types}",
|
"entityTypes": " └─ ประเภทตัวละคร: {types}",
|
||||||
"startPollingProgress": "กำลังตรวจสอบความคืบหน้าการเตรียมการ...",
|
"startPollingProgress": "กำลังตรวจสอบความคืบหน้าการเตรียมการ...",
|
||||||
"prepareFailed": "เตรียมการล้มเหลว: {error}",
|
"prepareFailed": "เตรียมการล้มเหลว: {error}",
|
||||||
"prepareException": "เกิดข้อผิดพลาดในการเตรียมการ: {error}",
|
"prepareException": "เกิดข้อผิดพลาดในการเตรียมการ: {error}",
|
||||||
@@ -637,14 +637,14 @@
|
|||||||
"fetchingNodeEdges": "กำลังดึงเส้นเชื่อมสำหรับโหนด {uuid}...",
|
"fetchingNodeEdges": "กำลังดึงเส้นเชื่อมสำหรับโหนด {uuid}...",
|
||||||
"foundNodeEdges": "พบ {count} เส้นเชื่อมที่เกี่ยวข้องกับโหนด",
|
"foundNodeEdges": "พบ {count} เส้นเชื่อมที่เกี่ยวข้องกับโหนด",
|
||||||
"fetchNodeEdgesFailed": "ดึงเส้นเชื่อมโหนดล้มเหลว: {error}",
|
"fetchNodeEdgesFailed": "ดึงเส้นเชื่อมโหนดล้มเหลว: {error}",
|
||||||
"fetchingEntitiesByType": "กำลังดึงเอนทิตีประเภท {type}...",
|
"fetchingEntitiesByType": "กำลังดึงตัวละครประเภท {type}...",
|
||||||
"foundEntitiesByType": "พบ {count} เอนทิตีประเภท {type}",
|
"foundEntitiesByType": "พบ {count} ตัวละครประเภท {type}",
|
||||||
"fetchingEntitySummary": "กำลังดึงสรุปความสัมพันธ์สำหรับเอนทิตี {name}...",
|
"fetchingEntitySummary": "กำลังดึงสรุปความสัมพันธ์สำหรับตัวละคร {name}...",
|
||||||
"fetchingGraphStats": "กำลังดึงสถิติสำหรับกราฟ {graphId}...",
|
"fetchingGraphStats": "กำลังดึงสถิติสำหรับกราฟ {graphId}...",
|
||||||
"fetchingSimContext": "กำลังดึงบริบทการจำลอง: {requirement}...",
|
"fetchingSimContext": "กำลังดึงบริบทการจำลอง: {requirement}...",
|
||||||
"insightForgeStart": "InsightForge การค้นหาเชิงลึก: {query}...",
|
"insightForgeStart": "InsightForge การค้นหาเชิงลึก: {query}...",
|
||||||
"generatedSubQueries": "สร้าง {count} คำถามย่อย",
|
"generatedSubQueries": "สร้าง {count} คำถามย่อย",
|
||||||
"insightForgeComplete": "InsightForge เสร็จ: {facts} ข้อเท็จจริง, {entities} เอนทิตี, {relationships} ความสัมพันธ์",
|
"insightForgeComplete": "InsightForge เสร็จ: {facts} ข้อเท็จจริง, {entities} ตัวละคร, {relationships} ความสัมพันธ์",
|
||||||
"generateSubQueriesFailed": "สร้างคำถามย่อยล้มเหลว: {error}, ใช้ค่าเริ่มต้น",
|
"generateSubQueriesFailed": "สร้างคำถามย่อยล้มเหลว: {error}, ใช้ค่าเริ่มต้น",
|
||||||
"panoramaSearchStart": "PanoramaSearch การค้นหากว้าง: {query}...",
|
"panoramaSearchStart": "PanoramaSearch การค้นหากว้าง: {query}...",
|
||||||
"panoramaSearchComplete": "PanoramaSearch เสร็จ: {active} ใช้งาน, {historical} อดีต",
|
"panoramaSearchComplete": "PanoramaSearch เสร็จ: {active} ใช้งาน, {historical} อดีต",
|
||||||
|
|||||||
@@ -26,8 +26,8 @@
|
|||||||
"files": "个文件"
|
"files": "个文件"
|
||||||
},
|
},
|
||||||
"meta": {
|
"meta": {
|
||||||
"title": "MiroFish - 预测万物",
|
"title": "CrowdSight - 预测万物",
|
||||||
"description": "MiroFish - 社交媒体舆论模拟系统"
|
"description": "CrowdSight - 社交媒体舆论模拟系统"
|
||||||
},
|
},
|
||||||
"nav": {
|
"nav": {
|
||||||
"visitGithub": "访问我们的Github主页"
|
"visitGithub": "访问我们的Github主页"
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
"heroTitle1": "上传任意报告",
|
"heroTitle1": "上传任意报告",
|
||||||
"heroTitle2": "即刻推演未来",
|
"heroTitle2": "即刻推演未来",
|
||||||
"heroDesc": "即使只有一段文字,{brand} 也能基于其中的现实种子,全自动生成与之对应的至多{agentScale}构成的平行世界。通过上帝视角注入变量,在复杂的群体交互中寻找动态环境下的{optimalSolution}",
|
"heroDesc": "即使只有一段文字,{brand} 也能基于其中的现实种子,全自动生成与之对应的至多{agentScale}构成的平行世界。通过上帝视角注入变量,在复杂的群体交互中寻找动态环境下的{optimalSolution}",
|
||||||
"heroDescBrand": "MiroFish",
|
"heroDescBrand": "CrowdSight",
|
||||||
"heroDescAgentScale": "百万级Agent",
|
"heroDescAgentScale": "百万级Agent",
|
||||||
"heroDescOptimalSolution": "\"局部最优解\"",
|
"heroDescOptimalSolution": "\"局部最优解\"",
|
||||||
"slogan": "让未来在 Agent 群中预演,让决策在百战后胜出",
|
"slogan": "让未来在 Agent 群中预演,让决策在百战后胜出",
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
"inputParams": "输入参数",
|
"inputParams": "输入参数",
|
||||||
"simulationPrompt": ">_ 02 / 模拟提示词",
|
"simulationPrompt": ">_ 02 / 模拟提示词",
|
||||||
"promptPlaceholder": "// 用自然语言输入模拟或预测需求(例.武大若发布撤销肖某处分的公告,会引发什么舆情走向)",
|
"promptPlaceholder": "// 用自然语言输入模拟或预测需求(例.武大若发布撤销肖某处分的公告,会引发什么舆情走向)",
|
||||||
"engineBadge": "引擎: MiroFish-V1.0",
|
"engineBadge": "引擎: CrowdSight-V1.0",
|
||||||
"startEngine": "启动引擎",
|
"startEngine": "启动引擎",
|
||||||
"initializing": "初始化中..."
|
"initializing": "初始化中..."
|
||||||
},
|
},
|
||||||
@@ -151,7 +151,7 @@
|
|||||||
"setupComplete": "准备完成",
|
"setupComplete": "准备完成",
|
||||||
"setupCompleteDesc": "模拟环境已准备完成,可以开始运行模拟",
|
"setupCompleteDesc": "模拟环境已准备完成,可以开始运行模拟",
|
||||||
"roundsConfig": "模拟轮数设定",
|
"roundsConfig": "模拟轮数设定",
|
||||||
"roundsConfigDesc": "MiroFish 自动规划推演现实 {hours} 小时,每轮代表现实 {minutesPerRound} 分钟时间流逝",
|
"roundsConfigDesc": "CrowdSight 自动规划推演现实 {hours} 小时,每轮代表现实 {minutesPerRound} 分钟时间流逝",
|
||||||
"customToggle": "自定义",
|
"customToggle": "自定义",
|
||||||
"roundsUnit": "轮",
|
"roundsUnit": "轮",
|
||||||
"estimatedDuration": "若Agent规模为100:预计耗时约 {minutes} 分钟",
|
"estimatedDuration": "若Agent规模为100:预计耗时约 {minutes} 分钟",
|
||||||
@@ -263,7 +263,7 @@
|
|||||||
"selectChatTarget": "选择对话对象",
|
"selectChatTarget": "选择对话对象",
|
||||||
"sendSurvey": "发送问卷调查到世界中",
|
"sendSurvey": "发送问卷调查到世界中",
|
||||||
"reportAgentChat": "Report Agent - Chat",
|
"reportAgentChat": "Report Agent - Chat",
|
||||||
"reportAgentDesc": "报告生成智能体的快速对话版本,可调用 4 种专业工具,拥有MiroFish的完整记忆",
|
"reportAgentDesc": "报告生成智能体的快速对话版本,可调用 4 种专业工具,拥有CrowdSight的完整记忆",
|
||||||
"toolInsightForge": "InsightForge 深度归因",
|
"toolInsightForge": "InsightForge 深度归因",
|
||||||
"toolInsightForgeDesc": "对齐现实世界种子数据与模拟环境状态,结合Global/Local Memory机制,提供跨时空的深度归因分析",
|
"toolInsightForgeDesc": "对齐现实世界种子数据与模拟环境状态,结合Global/Local Memory机制,提供跨时空的深度归因分析",
|
||||||
"toolPanoramaSearch": "PanoramaSearch 全景追踪",
|
"toolPanoramaSearch": "PanoramaSearch 全景追踪",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "mirofish",
|
"name": "crowdsight",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"description": "MiroFish - 简洁通用的群体智能引擎,预测万物",
|
"description": "CrowdSight - 简洁通用的群体智能引擎,预测万物",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"setup": "npm install && cd frontend && npm install",
|
"setup": "npm install && cd frontend && npm install",
|
||||||
"setup:backend": "cd backend && uv sync",
|
"setup:backend": "cd backend && uv sync",
|
||||||
|
|||||||
Reference in New Issue
Block a user