提交 5e72e11b authored 作者: 王鹏飞's avatar 王鹏飞

chore: update

上级 53e29aa7
import { getScoreList, getScoreDetail, updateScore } from '../api' import { getScoreList, getScoreDetail, updateScore } from '../api'
import { useUserStore } from '@/stores/user' import { useUserStore } from '@/stores/user'
import { useChat } from '@ezijing/ai-vue' import { useChat } from '@ezijing/ai-vue'
import { generatePrompt } from '../prompt' // import { generatePrompt } from '../prompt'
import { generatePrompt as generatePrompt2 } from '../prompt2' // import { generatePrompt as generatePrompt2 } from '../prompt2'
import { ElMessage } from 'element-plus' import { ElMessage } from 'element-plus'
import { import {
importType, importType,
...@@ -93,30 +93,30 @@ export function useScore() { ...@@ -93,30 +93,30 @@ export function useScore() {
const competitionRule = detail.competition_rule const competitionRule = detail.competition_rule
let prompt = '' let prompt = ''
if (competitionRule?.competition == 1) { // if (competitionRule?.competition == 1) {
if (competitionRule?.questions == 1) { // if (competitionRule?.questions == 1) {
prompt = generatePrompt(detail.live_data) // prompt = generatePrompt(detail.live_data)
} else { // } else {
prompt = generatePrompt2(detail.live_data) // prompt = generatePrompt2(detail.live_data)
} // }
} else { // } else {
const rules = JSON.parse(competitionRule?.config || '{}')?.rules || [] const rules = JSON.parse(competitionRule?.config || '{}')?.rules || []
rules.forEach((item: any) => { rules.forEach((item: any) => {
if (item.rule_mode != 2) return if (item.rule_mode != 2) return
if (item.type == 1) { if (item.type == 1) {
prompt += `请根据选手提交的商品品类信息进行评分(满分${item.percent}分): prompt += `请根据选手提交的商品品类信息进行评分(满分${item.percent}分):
选手提交内容: 选手提交内容:
${JSON.stringify(liveData.commodity_types)}` ${JSON.stringify(liveData.commodity_types)}`
} else if (item.type == 2) { } else if (item.type == 2) {
prompt += `请根据选手提交的商品属性配置信息进行评分(满分${item.percent}分): prompt += `请根据选手提交的商品属性配置信息进行评分(满分${item.percent}分):
重要性字典:${JSON.stringify(importType)} 重要性字典:${JSON.stringify(importType)}
必要性字典:${JSON.stringify(requiredType)} 必要性字典:${JSON.stringify(requiredType)}
选手提交内容: 选手提交内容:
${JSON.stringify(liveData.commodity_attrs)}` ${JSON.stringify(liveData.commodity_attrs)}`
} else if (item.type == 3) { } else if (item.type == 3) {
prompt += `请根据选手提交的商品信息维护内容进行评分(满分${item.percent}分): prompt += `请根据选手提交的商品信息维护内容进行评分(满分${item.percent}分):
发货模式字典:${JSON.stringify(deliveryMode)} 发货模式字典:${JSON.stringify(deliveryMode)}
发货时效字典:${JSON.stringify(deliveryTime)} 发货时效字典:${JSON.stringify(deliveryTime)}
订单库存扣减规则字典:${JSON.stringify(orderStockCount)} 订单库存扣减规则字典:${JSON.stringify(orderStockCount)}
...@@ -125,16 +125,16 @@ ${JSON.stringify(liveData.commodity_attrs)}` ...@@ -125,16 +125,16 @@ ${JSON.stringify(liveData.commodity_attrs)}`
选手提交内容: 选手提交内容:
${JSON.stringify(liveData.commodities)}` ${JSON.stringify(liveData.commodities)}`
} else if (item.type == 4) { } else if (item.type == 4) {
prompt += `请根据选手提交的直播话术进行评分(满分${item.percent}分): prompt += `请根据选手提交的直播话术进行评分(满分${item.percent}分):
选手提交内容: 选手提交内容:
${JSON.stringify(liveData.speeches)}` ${JSON.stringify(liveData.speeches)}`
} }
prompt += `评分标准: prompt += `评分标准:
${item.content}` ${item.content}`
}) })
prompt += `EXAMPLE JSON OUTPUT: prompt += `EXAMPLE JSON OUTPUT:
{ {
"commodity_type": { "commodity_type": {
"score": 5, "score": 5,
...@@ -147,9 +147,13 @@ ${JSON.stringify(liveData.speeches)}` ...@@ -147,9 +147,13 @@ ${JSON.stringify(liveData.speeches)}`
"commodity": { "commodity": {
"score": 5, "score": 5,
"comment": "这是评语" "comment": "这是评语"
} },
"speech": {
"score": 5,
"comment": "这是评语"
},
}` }`
} // }
const messages = [ const messages = [
{ {
role: 'system', role: 'system',
...@@ -157,7 +161,11 @@ ${JSON.stringify(liveData.speeches)}` ...@@ -157,7 +161,11 @@ ${JSON.stringify(liveData.speeches)}`
}, },
{ role: 'user', content: prompt }, { role: 'user', content: prompt },
] ]
const result = await generateText({ messages, response_format: { type: 'json_object' } } as any) const result = await generateText({
model: 'deepseek-v4-flash-260425',
messages,
response_format: { type: 'json_object' },
} as any)
if (!result) return if (!result) return
try { try {
......
...@@ -11,8 +11,6 @@ import { useEventListener } from '@vueuse/core' ...@@ -11,8 +11,6 @@ import { useEventListener } from '@vueuse/core'
const router = useRouter() const router = useRouter()
const userStore = useUserStore() const userStore = useUserStore()
const CompetitionLive = defineAsyncComponent(() => import('../components/CompetitionLive.vue'))
const CompetitionLiveProd = defineAsyncComponent(() => import('../components/CompetitionLiveProd.vue'))
const CompetitionLive3 = defineAsyncComponent(() => import('../components/CompetitionLive3.vue')) const CompetitionLive3 = defineAsyncComponent(() => import('../components/CompetitionLive3.vue'))
const CompetitionOperations = defineAsyncComponent(() => import('../components/CompetitionOperations.vue')) const CompetitionOperations = defineAsyncComponent(() => import('../components/CompetitionOperations.vue'))
const route = useRoute() const route = useRoute()
...@@ -162,29 +160,14 @@ useEventListener(window, 'pagehide', () => { ...@@ -162,29 +160,14 @@ useEventListener(window, 'pagehide', () => {
</div> </div>
</div> </div>
<el-divider /> <el-divider />
<!-- 网络主播赛项 -->
<template v-if="competitionRule.competition == 1">
<!-- “悦颜坊”美妆护肤案例 -->
<CompetitionLive
:detail="detail"
@save="handleSave"
v-model:scoreDetails="scoreDetails"
v-if="competitionRule.questions == 1" />
<!-- 襄阳牛肉面2桶装(有牛肉) -->
<CompetitionLiveProd :detail="detail" @save="handleSave" v-model:scoreDetails="scoreDetails" v-else />
</template>
<!-- 全媒体运营赛项 --> <!-- 全媒体运营赛项 -->
<CompetitionOperations <CompetitionOperations
:detail="detail" :detail="detail"
@save="handleSave" @save="handleSave"
v-model:scoreDetails="scoreDetails" v-model:scoreDetails="scoreDetails"
v-else-if="competitionRule.competition == 2" /> v-if="competitionRule.competition == 2 || competitionRule.competition == 4" />
<!-- 互联网营销师(直播销售) --> <!-- 网络主播赛项 -->
<CompetitionLive3 <CompetitionLive3 :detail="detail" @save="handleSave" v-model:scoreDetails="scoreDetails" v-else />
:detail="detail"
@save="handleSave"
v-model:scoreDetails="scoreDetails"
v-else-if="competitionRule.competition == 3" />
</AppCard> </AppCard>
</template> </template>
...@@ -198,11 +181,23 @@ useEventListener(window, 'pagehide', () => { ...@@ -198,11 +181,23 @@ useEventListener(window, 'pagehide', () => {
display: none; display: none;
} }
@media (max-width: 767px) { @media (max-width: 767px) {
:deep(.el-tabs__header) { width: 100%; } :deep(.el-tabs__header) {
width: 100%;
}
:deep(.el-tabs__nav-wrap), :deep(.el-tabs__nav-wrap),
:deep(.el-tabs__nav-scroll) { overflow-x: auto; overflow-y: hidden; } :deep(.el-tabs__nav-scroll) {
:deep(.el-tabs__nav) { display: inline-flex; flex-wrap: nowrap; } overflow-x: auto;
:deep(.el-tabs__item) { flex-shrink: 0; font-size: 13px; padding: 0 8px; } overflow-y: hidden;
}
:deep(.el-tabs__nav) {
display: inline-flex;
flex-wrap: nowrap;
}
:deep(.el-tabs__item) {
flex-shrink: 0;
font-size: 13px;
padding: 0 8px;
}
} }
} }
.score-header { .score-header {
......
Markdown 格式
0% 或
您添加了 0 人 到此讨论。请谨慎行事。
请先完成此评论的编辑!
请 注册 或者 后发表评论