mirror of
https://github.com/yangjian102621/geekai.git
synced 2025-09-18 01:06:39 +08:00
fixed markdown generating styles
This commit is contained in:
parent
6891bdde53
commit
d6e9dc6839
@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
## v4.0.4
|
## v4.0.4
|
||||||
|
|
||||||
* Bug修复:修复统一千问第二句不回复的问题。
|
* Bug修复:修复统一千问第二句不回复的问题
|
||||||
|
* 功能新增:Dalle AI 绘画功能实现
|
||||||
|
|
||||||
## v4.0.3
|
## v4.0.3
|
||||||
|
|
||||||
|
@ -74,6 +74,7 @@ func (h *MarkMapHandler) Client(c *gin.Context) {
|
|||||||
logger.Info("Receive a message: ", message.Content)
|
logger.Info("Receive a message: ", message.Content)
|
||||||
err = h.sendMessage(client, utils.InterfaceToString(message.Content), modelId, userId)
|
err = h.sendMessage(client, utils.InterfaceToString(message.Content), modelId, userId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
logger.Error(err)
|
||||||
utils.ReplyChunkMessage(client, types.WsMessage{Type: types.WsErr, Content: err.Error()})
|
utils.ReplyChunkMessage(client, types.WsMessage{Type: types.WsErr, Content: err.Error()})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,7 +103,7 @@ func (h *MarkMapHandler) sendMessage(client *types.WsClient, prompt string, mode
|
|||||||
}
|
}
|
||||||
|
|
||||||
messages := make([]interface{}, 0)
|
messages := make([]interface{}, 0)
|
||||||
messages = append(messages, types.Message{Role: "system", Content: "你是一位非常优秀的思维导图助手,你会把用户的所有提问都总结成思维导图,然后以 Markdown 格式输出。只输出 Markdown 内容,不要输出任何解释性的语句。"})
|
messages = append(messages, types.Message{Role: "system", Content: "你是一位非常优秀的思维导图助手,你会把用户的所有提问都总结成思维导图,然后以 Markdown 格式输出。不要输出任何解释性的语句。"})
|
||||||
messages = append(messages, types.Message{Role: "user", Content: prompt})
|
messages = append(messages, types.Message{Role: "user", Content: prompt})
|
||||||
var req = types.ApiRequest{
|
var req = types.ApiRequest{
|
||||||
Model: chatModel.Value,
|
Model: chatModel.Value,
|
||||||
|
@ -53,7 +53,7 @@ func (s *Service) Run() {
|
|||||||
|
|
||||||
// translate prompt
|
// translate prompt
|
||||||
if utils.HasChinese(task.Prompt) {
|
if utils.HasChinese(task.Prompt) {
|
||||||
content, err := utils.OpenAIRequest(s.db, fmt.Sprintf(service.TranslatePromptTemplate, task.Prompt))
|
content, err := utils.OpenAIRequest(s.db, fmt.Sprintf(service.RewritePromptTemplate, task.Prompt))
|
||||||
if err == nil {
|
if err == nil {
|
||||||
task.Prompt = content
|
task.Prompt = content
|
||||||
} else {
|
} else {
|
||||||
@ -62,7 +62,7 @@ func (s *Service) Run() {
|
|||||||
}
|
}
|
||||||
// translate negative prompt
|
// translate negative prompt
|
||||||
if task.NegPrompt != "" && utils.HasChinese(task.NegPrompt) {
|
if task.NegPrompt != "" && utils.HasChinese(task.NegPrompt) {
|
||||||
content, err := utils.OpenAIRequest(s.db, fmt.Sprintf(service.TranslatePromptTemplate, task.NegPrompt))
|
content, err := utils.OpenAIRequest(s.db, fmt.Sprintf(service.RewritePromptTemplate, task.NegPrompt))
|
||||||
if err == nil {
|
if err == nil {
|
||||||
task.NegPrompt = content
|
task.NegPrompt = content
|
||||||
} else {
|
} else {
|
||||||
|
16
api/store/model/dalle_job.go
Normal file
16
api/store/model/dalle_job.go
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package model
|
||||||
|
|
||||||
|
import "time"
|
||||||
|
|
||||||
|
type DallJob struct {
|
||||||
|
Id uint `gorm:"primarykey;column:id"`
|
||||||
|
UserId int
|
||||||
|
TaskId string
|
||||||
|
Prompt string
|
||||||
|
ImgURL string
|
||||||
|
Publish bool
|
||||||
|
Power int
|
||||||
|
Progress int
|
||||||
|
ErrMsg string
|
||||||
|
CreatedAt time.Time
|
||||||
|
}
|
14
api/store/vo/dalle_job.go
Normal file
14
api/store/vo/dalle_job.go
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
package vo
|
||||||
|
|
||||||
|
type DallJob struct {
|
||||||
|
Id uint `json:"id"`
|
||||||
|
UserId int `json:"user_id"`
|
||||||
|
TaskId string `json:"task_id"`
|
||||||
|
Prompt string `json:"prompt"`
|
||||||
|
ImgURL string `json:"img_url"`
|
||||||
|
Publish bool `json:"publish"`
|
||||||
|
Power int `json:"power"`
|
||||||
|
Progress int `json:"progress"`
|
||||||
|
ErrMsg string `json:"err_msg"`
|
||||||
|
CreatedAt int64 `json:"created_at"`
|
||||||
|
}
|
1
database/update-v4.0.4.sql
Normal file
1
database/update-v4.0.4.sql
Normal file
@ -0,0 +1 @@
|
|||||||
|
CREATE TABLE `chatgpt_plus`.`chatgpt_dalle` ( `id` INT(11) NOT NULL AUTO_INCREMENT , `user_id` INT(11) NOT NULL COMMENT '用户ID' , `task_id` VARCHAR(20) NOT NULL COMMENT '任务ID' , `prompt` VARCHAR(2000) NOT NULL COMMENT '提示词' , `img_url` VARCHAR(255) NOT NULL COMMENT '图片地址' , `publish` TINYINT(1) NOT NULL COMMENT '是否发布' , `power` SMALLINT(3) NOT NULL COMMENT '消耗算力' , `progress` SMALLINT(3) NOT NULL COMMENT '任务进度' , `err_msg` VARCHAR(255) NOT NULL COMMENT '错误信息' , `created_at` DATETIME NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB COMMENT = 'DALLE 绘图任务表';
|
BIN
web/public/images/menu/dalle.png
Normal file
BIN
web/public/images/menu/dalle.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
@ -112,6 +112,10 @@
|
|||||||
width 100%
|
width 100%
|
||||||
color #ffffff
|
color #ffffff
|
||||||
font-size 12px
|
font-size 12px
|
||||||
|
|
||||||
|
.markmap-foreign {
|
||||||
|
//height 30px
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -102,14 +102,14 @@ const rightBoxHeight = ref(window.innerHeight - 85)
|
|||||||
const prompt = ref("")
|
const prompt = ref("")
|
||||||
const text = ref(`# Geek-AI 助手
|
const text = ref(`# Geek-AI 助手
|
||||||
|
|
||||||
* 完整的开源系统,前端应用和后台管理系统皆可开箱即用。
|
- 完整的开源系统,前端应用和后台管理系统皆可开箱即用。
|
||||||
* 基于 Websocket 实现,完美的打字机体验。
|
- 基于 Websocket 实现,完美的打字机体验。
|
||||||
* 内置了各种预训练好的角色应用,轻松满足你的各种聊天和应用需求。
|
- 内置了各种预训练好的角色应用,轻松满足你的各种聊天和应用需求。
|
||||||
* 支持 OPenAI,Azure,文心一言,讯飞星火,清华 ChatGLM等多个大语言模型。
|
- 支持 OPenAI,Azure,文心一言,讯飞星火,清华 ChatGLM等多个大语言模型。
|
||||||
* 支持 MidJourney / Stable Diffusion AI 绘画集成,开箱即用。
|
- 支持 MidJourney / Stable Diffusion AI 绘画集成,开箱即用。
|
||||||
* 支持使用个人微信二维码作为充值收费的支付渠道,无需企业支付通道。
|
- 支持使用个人微信二维码作为充值收费的支付渠道,无需企业支付通道。
|
||||||
* 已集成支付宝支付功能,微信支付,支持多种会员套餐和点卡购买功能。
|
- 已集成支付宝支付功能,微信支付,支持多种会员套餐和点卡购买功能。
|
||||||
* 集成插件 API 功能,可结合大语言模型的 function 功能开发各种强大的插件。
|
- 集成插件 API 功能,可结合大语言模型的 function 功能开发各种强大的插件。
|
||||||
`)
|
`)
|
||||||
const md = require('markdown-it')({breaks: true});
|
const md = require('markdown-it')({breaks: true});
|
||||||
const content = ref(text.value)
|
const content = ref(text.value)
|
||||||
@ -170,6 +170,7 @@ const processContent = (text) => {
|
|||||||
if (line.indexOf("```") !== -1) {
|
if (line.indexOf("```") !== -1) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
line = line.replace(/([*_~`>])|(\d+\.)\s/g, '')
|
||||||
arr.push(line)
|
arr.push(line)
|
||||||
}
|
}
|
||||||
return arr.join("\n")
|
return arr.join("\n")
|
||||||
@ -240,6 +241,7 @@ const connect = (userId) => {
|
|||||||
break
|
break
|
||||||
case "end":
|
case "end":
|
||||||
loading.value = false
|
loading.value = false
|
||||||
|
content.value = processContent(text.value)
|
||||||
nextTick(() => update())
|
nextTick(() => update())
|
||||||
break
|
break
|
||||||
case "error":
|
case "error":
|
||||||
@ -266,6 +268,8 @@ const generate = () => {
|
|||||||
|
|
||||||
// 使用 AI 智能生成
|
// 使用 AI 智能生成
|
||||||
const generateAI = () => {
|
const generateAI = () => {
|
||||||
|
html.value = ''
|
||||||
|
text.value = ''
|
||||||
if (prompt.value === '') {
|
if (prompt.value === '') {
|
||||||
return ElMessage.error("请输入你的需求")
|
return ElMessage.error("请输入你的需求")
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user