Update
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
# Obscura Roundtable - 黑盒圆桌会议系统
|
||||
|
||||
一个创新的AI驱动的多角色对话系统,支持多语言实时讨论和语音合成功能。
|
||||
|
||||
## 功能特性
|
||||
|
||||
- 🤖 多AI角色实时对话
|
||||
- 🌐 多语言支持
|
||||
- 🎯 自定义讨论主题
|
||||
- 🔊 实时语音合成
|
||||
- 👥 用户认证系统
|
||||
- 📝 对话历史记录
|
||||
- 🎨 现代化Web界面
|
||||
|
||||
## 项目结构
|
||||
```
|
||||
Obscuraroundtable/
|
||||
├── README.md # 项目说明文档
|
||||
├── .env # 环境变量配置文件
|
||||
├── roundtable.py # 主程序
|
||||
│
|
||||
├── 前端页面
|
||||
│ ├── login.html # 登录页面
|
||||
│ ├── box.html # 黑盒圆桌会议页面
|
||||
│ ├── space.html # 黑盒广场页面
|
||||
│ ├── history.html # 历史记录页面
|
||||
│ └── lang.js # 多语言支持脚本
|
||||
│
|
||||
├── team_members/ # 团队成员设置
|
||||
└── old/ # 历史版本备份,可以忽略
|
||||
```
|
||||
|
||||
## 使用说明
|
||||
### 后端服务 http://dev.obscura.work/user
|
||||
1. 环境变量:`.env`文件
|
||||
2. 服务器:222.186.10.253
|
||||
- port: 8000
|
||||
3. kafka 配置:222.186.10.253:9092
|
||||
- tts: "tts"
|
||||
4. SQL: sh-cdb-4ln6r8y0.sql.tencentcdb.com:28234/minio #用户认证
|
||||
4. redis 配置:150.158.144.159:13003
|
||||
db分配:
|
||||
- 0: "存储用户会话信息"
|
||||
- 11: "task 任务记录"
|
||||
#语言
|
||||
- 63: "session_zh 中文"
|
||||
- 62: "session_en 英文"
|
||||
- 61: "session_ko 韩语"
|
||||
#音色数据记录
|
||||
- 15: "girl"
|
||||
- 16: "woman"
|
||||
- 17: "man"
|
||||
- 18: "leijun"
|
||||
- 19: "dufu"
|
||||
- 20: "hejiong"
|
||||
- 21: "mahuateng"
|
||||
- 22: "lidan"
|
||||
- 23: "dabing"
|
||||
- 24: "luoxiang"
|
||||
- 25: "xuzhiyuan"
|
||||
- 26: "yuhua"
|
||||
- 27: "liuzhenyun"
|
||||
5. 音频文件保存目录:
|
||||
- 音频文件:"/obscura/task/audio_files"
|
||||
- 头像:"/obscura/task/avatar"
|
||||
6. 模型:
|
||||
- chat: siliconflow:"deepseek-ai/DeepSeek-V2.5"
|
||||
- tts: kafka: "tts"
|
||||
### Web界面 http://beat.obscura.work/
|
||||
1. login.html 登录页面
|
||||
2. box.html 黑盒圆桌会议页面
|
||||
3. space.html 黑盒广场,查看所有探讨
|
||||
4. history.html 历史记录页面
|
||||
5. lang.js 多语言支持脚本
|
||||
|
||||
## 主要功能模块
|
||||
- 用户认证与管理
|
||||
- AI角色管理
|
||||
- 实时对话生成
|
||||
- 语音合成服务
|
||||
- 多语言支持
|
||||
- 对话历史记录
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<script src="lang-1.6.js"></script>
|
||||
<script src="lang-1.8.js"></script>
|
||||
<title data-i18n="title">黑盒圆桌</title>
|
||||
<style>
|
||||
body {
|
||||
@@ -546,7 +546,7 @@
|
||||
const sessionIdDisplay = document.getElementById('session-id');
|
||||
const specialRoles = {
|
||||
brainstorm: ['市场营销专家', '技术专家', '创意专家', '财务专家', '项目规划专家', '数据分析专家'],
|
||||
hallOfFame: ['马化腾', '李诞', '罗翔', '许知远', '大冰', '余华', '刘震云', '雷军']
|
||||
hallOfFame: ['马化腾', '李诞', '罗翔', '许知远', '大冰', '余华', '雷军']
|
||||
};
|
||||
let currentTopic = 'brainstorm';
|
||||
let selectedRoles = ['主持人'];
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<script src="lang-1.6.js"></script>
|
||||
<script src="lang-1.8.js"></script>
|
||||
<title data-i18n="historytitle">讨论内容</title>
|
||||
<style>
|
||||
body {
|
||||
|
||||
@@ -38,7 +38,6 @@ const translations = {
|
||||
"许知远": "许知远",
|
||||
"大冰": "大冰",
|
||||
"余华": "余华",
|
||||
"刘震云": "刘震云",
|
||||
"雷军": "雷军"
|
||||
},
|
||||
brainstorm: "头脑风暴",
|
||||
@@ -94,7 +93,6 @@ const translations = {
|
||||
"许知远": "Xu Zhiyuan",
|
||||
"大冰": "Da Bing",
|
||||
"余华": "Yu Hua",
|
||||
"刘震云": "Liu Zhenyun",
|
||||
"雷军": "Lei Jun"
|
||||
},
|
||||
brainstorm: "Brainstorm",
|
||||
@@ -150,7 +148,6 @@ const translations = {
|
||||
"许知远": "서지원",
|
||||
"大冰": "대빙",
|
||||
"余华": "유화",
|
||||
"刘震云": "류진운",
|
||||
"雷军": "레이준"
|
||||
},
|
||||
brainstorm: "브레인스토밍",
|
||||
|
||||
+101
-7
@@ -3,8 +3,8 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title data-i18n="pageTitle">用户登录/注册 - 黑盒智能</title>
|
||||
<script src="lang-1.6.js"></script>
|
||||
<title data-i18n="pageTitle">用户登录/注册</title>
|
||||
<script src="lang-1.8.js"></script>
|
||||
<style>
|
||||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
@@ -73,13 +73,107 @@
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
}
|
||||
|
||||
#language-select {
|
||||
padding: 5px 10px;
|
||||
font-size: 14px;
|
||||
border: 1px solid #000;
|
||||
border-radius: 4px;
|
||||
padding: 10px 20px;
|
||||
font-size: 16px;
|
||||
border: none;
|
||||
border-radius: 25px;
|
||||
background-color: #1a1a1a;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.3s ease;
|
||||
width: auto; /* Allow the width to adjust to content */
|
||||
min-width: 40px; /* Set a minimum width */
|
||||
}
|
||||
|
||||
#language-select:hover {
|
||||
background-color: #333;
|
||||
}
|
||||
|
||||
#language-select option {
|
||||
background-color: white;
|
||||
color: #000;
|
||||
color: black;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
#language-select:focus {
|
||||
outline: none;
|
||||
box-shadow: 0 0 0 2px rgba(255,255,255,0.5);
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.container {
|
||||
padding: 2rem;
|
||||
max-width: 350px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2.2rem;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
input {
|
||||
font-size: 1rem;
|
||||
padding: 0.7rem;
|
||||
}
|
||||
|
||||
button {
|
||||
font-size: 1.1rem;
|
||||
padding: 0.7rem;
|
||||
}
|
||||
|
||||
.error {
|
||||
font-size: 1rem;
|
||||
margin-top: 1.2rem;
|
||||
}
|
||||
|
||||
#language-select {
|
||||
padding: 9px 18px;
|
||||
font-size: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
body {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.container {
|
||||
padding: 1.5rem;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 1.8rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
input {
|
||||
font-size: 0.9rem;
|
||||
padding: 0.6rem;
|
||||
margin: 0.5rem 0;
|
||||
}
|
||||
|
||||
button {
|
||||
font-size: 1rem;
|
||||
padding: 0.6rem;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.error {
|
||||
font-size: 0.9rem;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
#language-selector {
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
}
|
||||
|
||||
#language-select {
|
||||
padding: 8px 16px;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title data-i18n="spacetitle">黑盒广场</title>
|
||||
<script src="lang-1.7.js"></script>
|
||||
<script src="lang-1.8.js"></script>
|
||||
<style>
|
||||
body {
|
||||
font-family: 'Helvetica Neue', Arial, sans-serif;
|
||||
|
||||
Reference in New Issue
Block a user