ollama支持

This commit is contained in:
IndieKKY
2024-04-12 10:18:44 +08:00
parent c40338a5f5
commit 60697769bb
9 changed files with 85 additions and 80 deletions

View File

@@ -15,18 +15,9 @@ import {
setUrl,
} from '../redux/envReducer'
import {EventBusContext} from '../Router'
import {
EVENT_EXPAND,
GEMINI_TOKENS,
MODEL_DEFAULT,
MODEL_MAP,
TOTAL_HEIGHT_MAX,
TOTAL_HEIGHT_MIN,
WORDS_MIN,
WORDS_RATE
} from '../const'
import {EVENT_EXPAND, GEMINI_TOKENS, TOTAL_HEIGHT_MAX, TOTAL_HEIGHT_MIN, WORDS_MIN, WORDS_RATE} from '../const'
import {useInterval} from 'ahooks'
import {getWholeText} from '../util/biz_util'
import {getModelMaxTokens, getWholeText} from '../util/biz_util'
/**
* Service是单例类似后端的服务概念
@@ -172,7 +163,7 @@ const useSubtitleService = () => {
if (envData.aiType === 'gemini') {
size = GEMINI_TOKENS*WORDS_RATE
} else {
size = (MODEL_MAP[envData.model??MODEL_DEFAULT]?.tokens??4000)*WORDS_RATE
size = getModelMaxTokens(envData)*WORDS_RATE
}
}
size = Math.max(size, WORDS_MIN)
@@ -209,7 +200,7 @@ const useSubtitleService = () => {
}
}
dispatch(setSegments(segments))
}, [data?.body, dispatch, envData.aiType, envData.model, envData.summarizeEnable, envData.words])
}, [data?.body, dispatch, envData])
// 每秒更新当前视频时间
useInterval(() => {

View File

@@ -16,7 +16,6 @@ import {
import {
LANGUAGE_DEFAULT,
LANGUAGES_MAP,
MODEL_DEFAULT,
PROMPT_DEFAULTS,
PROMPT_TYPE_ASK,
PROMPT_TYPE_TRANSLATE,
@@ -28,7 +27,7 @@ import {
} from '../const'
import toast from 'react-hot-toast'
import {useMemoizedFn} from 'ahooks/es'
import {extractJsonArray, extractJsonObject} from '../util/biz_util'
import {extractJsonArray, extractJsonObject, getModel} from '../util/biz_util'
import {formatTime} from '../util/util'
const useTranslate = () => {
@@ -104,7 +103,7 @@ const useTranslate = () => {
}
}
:{
model: envData.model??MODEL_DEFAULT,
model: getModel(envData),
messages: [
{
role: 'user',
@@ -137,7 +136,7 @@ const useTranslate = () => {
dispatch(addTaskId(task.id))
}
}
}, [data?.body, envData.fetchAmount, envData.prompts, envData.aiType, envData.serverUrl, envData.model, envData.apiKey, envData.geminiApiKey, language.name, title, dispatch])
}, [data?.body, envData, language.name, title, dispatch])
const addSummarizeTask = useCallback(async (type: SummaryType, segment: Segment) => {
if (segment.text.length >= SUMMARIZE_THRESHOLD) {
@@ -173,7 +172,7 @@ const useTranslate = () => {
}
}
:{
model: envData.model??MODEL_DEFAULT,
model: getModel(envData),
messages: [
{
role: 'user',
@@ -198,7 +197,7 @@ const useTranslate = () => {
const task = await chrome.runtime.sendMessage({type: 'addTask', taskDef})
dispatch(addTaskId(task.id))
}
}, [dispatch, envData.aiType, envData.apiKey, envData.geminiApiKey, envData.model, envData.prompts, envData.serverUrl, summarizeLanguage.name, title])
}, [dispatch, envData, summarizeLanguage.name, title])
const addAskTask = useCallback(async (segment: Segment, question: string) => {
if (segment.text.length >= SUMMARIZE_THRESHOLD) {
@@ -228,7 +227,7 @@ const useTranslate = () => {
}
}
:{
model: envData.model??MODEL_DEFAULT,
model: getModel(envData),
messages: [
{
role: 'user',
@@ -251,7 +250,7 @@ const useTranslate = () => {
const task = await chrome.runtime.sendMessage({type: 'addTask', taskDef})
dispatch(addTaskId(task.id))
}
}, [dispatch, envData.aiType, envData.apiKey, envData.geminiApiKey, envData.model, envData.prompts, envData.serverUrl, summarizeLanguage.name, title])
}, [dispatch, envData, summarizeLanguage.name, title])
const handleTranslate = useMemoizedFn((task: Task, content: string) => {
let map: {[key: string]: string} = {}