feat: frontend multi models support (#804)

Co-authored-by: StyleZhang <jasonapring2015@outlook.com>
Co-authored-by: Joel <iamjoel007@gmail.com>
This commit is contained in:
takatost
2023-08-12 00:57:13 +08:00
committed by GitHub
parent 5fa2161b05
commit d10ef17f17
259 changed files with 9105 additions and 1392 deletions

View File

@@ -93,6 +93,7 @@ const translation = {
'Please wait for the response to the previous message to complete.',
waitForBatchResponse:
'Please wait for the response to the batch task to complete.',
notSelectModel: 'Please choose a model',
},
chatSubTitle: 'Pre Prompt',
completionSubTitle: 'Prefix Prompt',

View File

@@ -90,6 +90,7 @@ const translation = {
queryRequired: '主要文本必填',
waitForResponse: '请等待上条信息响应完成',
waitForBatchResponse: '请等待批量任务完成',
notSelectModel: '请选择模型',
},
chatSubTitle: '对话前提示词',
completionSubTitle: '前缀提示词',

View File

@@ -5,6 +5,27 @@ const translation = {
getKeyTip: 'Get your API Key from OpenAI dashboard',
placeholder: 'Your OpenAI API Key(eg.sk-xxxx)',
},
apiKeyInfo: {
cloud: {
trial: {
title: 'You are using the {{providerName}} trial quota.',
description: 'The trial quota is provided for your testing use. Before the trial quota calls are exhausted, please set up your own model provider or purchase additional quota.',
},
exhausted: {
title: 'Your trial quota have been used up, please set up your APIKey.',
description: 'Your trial quota has been exhausted. Please set up your own model provider or purchase additional quota.',
},
},
selfHost: {
title: {
row1: 'To get started,',
row2: 'setup your model provider first.',
},
},
callTimes: 'Call times',
setAPIBtn: 'Go to setup model provider',
tryCloud: 'Or try the cloud version of Dify with free quote',
},
overview: {
title: 'Overview',
appInfo: {

View File

@@ -5,6 +5,27 @@ const translation = {
getKeyTip: '从 OpenAI 获取你的 API Key',
placeholder: '你的 OpenAI API Key例如 sk-xxxx',
},
apiKeyInfo: {
cloud: {
trial: {
title: '您正在使用 {{providerName}} 试用配额。',
description: '试用配额仅供您测试使用。 在试用配额用完之前,请自行设置模型提供商或购买额外配额。',
},
exhausted: {
title: '您的试用额度已用完请设置您的APIKey。',
description: '您的试用配额已用完。 请设置您自己的模型提供商或购买额外配额。',
},
},
selfHost: {
title: {
row1: '首先,',
row2: '设置您的模型提供商。',
},
},
callTimes: '调用次数',
setAPIBtn: '设置模型提供商',
tryCloud: '或者尝试使用 Dify 的云版本并使用试用配额',
},
overview: {
title: '概览',
appInfo: {

View File

@@ -23,6 +23,8 @@ const translation = {
lineBreak: 'Line break',
sure: 'I\'m sure',
download: 'Download',
setup: 'Setup',
getForFree: 'Get for free',
},
placeholder: {
input: 'Please enter',
@@ -41,20 +43,20 @@ const translation = {
temperature: 'Temperature',
temperatureTip:
'Controls randomness: Lowering results in less random completions. As the temperature approaches zero, the model will become deterministic and repetitive.',
topP: 'Top P',
topPTip:
top_p: 'Top P',
top_pTip:
'Controls diversity via nucleus sampling: 0.5 means half of all likelihood-weighted options are considered.',
presencePenalty: 'Presence penalty',
presencePenaltyTip:
presence_penalty: 'Presence penalty',
presence_penaltyTip:
'How much to penalize new tokens based on whether they appear in the text so far. Increases the model\'s likelihood to talk about new topics.',
frequencyPenalty: 'Frequency penalty',
frequencyPenaltyTip:
frequency_penalty: 'Frequency penalty',
frequency_penaltyTip:
'How much to penalize new tokens based on their existing frequency in the text so far. Decreases the model\'s likelihood to repeat the same line verbatim.',
maxToken: 'Max token',
maxTokenTip:
max_tokens: 'Max token',
max_tokensTip:
'Max tokens depending on the model. Prompt and completion share this limit. One token is roughly 1 English character.',
maxTokenSettingTip: 'Your max token setting is high, potentially limiting space for prompts, queries, and data. Consider setting it below 2/3.',
setToCurrentModelMaxTokenTip: 'Max token is updated to the maximum token of the current model {{maxToken}}.',
setToCurrentModelMaxTokenTip: 'Max token is updated to the 80% maximum token of the current model {{maxToken}}.',
},
tone: {
Creative: 'Creative',
@@ -202,6 +204,52 @@ const translation = {
back: ' technology.',
},
},
modelProvider: {
selectModel: 'Select your model',
setupModelFirst: 'Please set up your model first',
systemReasoningModel: {
key: 'System Reasoning Model',
tip: 'System Reasoning Model',
},
embeddingModel: {
key: 'Embedding Model',
tip: 'Embedding Model',
},
speechToTextModel: {
key: 'Speech-to-Text Model',
tip: 'Speech-to-Text Model',
},
quota: 'Quota',
searchModel: 'Search model',
noModelFound: 'No model found for {{model}}',
models: 'Models',
showMoreModelProvider: 'Show more model provider',
selector: {
tip: 'This model has been removed. Please add a model or select another model.',
},
card: {
quota: 'QUOTA',
onTrial: 'On Trial',
paid: 'Paid',
quotaExhausted: 'Quota exhausted',
callTimes: 'Call times',
tokens: 'Tokens',
buyQuota: 'Buy Quota',
priorityUse: 'Priority use',
removeKey: 'Remove API Key',
tip: 'Priority will be given to the paid quota. The Trial quota will be used after the paid quota is exhausted.',
},
item: {
deleteDesc: '{{modelName}} are being used as system reasoning models. Some functions will not be available after removal. Please confirm.',
freeQuota: 'FREE QUOTA',
},
addApiKey: 'Add your API key',
invalidApiKey: 'Invalid API key',
encrypted: {
front: 'Your API KEY will be encrypted and stored using',
back: ' technology.',
},
},
dataSource: {
add: 'Add a data source',
connect: 'Connect',
@@ -265,6 +313,17 @@ const translation = {
converting: 'Converting to text...',
notAllow: 'microphone not authorized',
},
modelName: {
'gpt-3.5-turbo': 'GPT-3.5-Turbo',
'gpt-3.5-turbo-16k': 'GPT-3.5-Turbo-16K',
'gpt-4': 'GPT-4',
'gpt-4-32k': 'GPT-4-32K',
'text-davinci-003': 'Text-Davinci-003',
'text-embedding-ada-002': 'Text-Embedding-Ada-002',
'whisper-1': 'Whisper-1',
'claude-instant-1': 'Claude-Instant',
'claude-2': 'Claude-2',
},
}
export default translation

View File

@@ -23,6 +23,8 @@ const translation = {
lineBreak: '换行',
sure: '我确定',
download: '下载',
setup: '设置',
getForFree: '免费获取',
},
placeholder: {
input: '请输入',
@@ -41,20 +43,20 @@ const translation = {
temperature: '多样性',
temperatureTip:
'较高的 Temperature 设置将导致更多样和创造性的输出,而较低的 Temperature 将产生更保守的输出并且类似于训练数据。',
topP: '采样范围',
topPTip:
top_p: '采样范围',
top_pTip:
'Top P值越低输出与训练文本越相似Top P值越高输出越有创意和变化。它可用于使输出更适合特定用例。',
presencePenalty: '词汇控制',
presencePenaltyTip:
presence_penalty: '词汇控制',
presence_penaltyTip:
'Presence penalty 是根据新词是否出现在目前的文本中来对其进行惩罚。正值将降低模型谈论新话题的可能性。',
frequencyPenalty: '重复控制',
frequencyPenaltyTip:
frequency_penalty: '重复控制',
frequency_penaltyTip:
'Frequency penalty 是根据重复词在目前文本中的出现频率来对其进行惩罚。正值将不太可能重复常用单词和短语。',
maxToken: '最大 Token',
maxTokenTip:
max_tokens: '最大 Token',
max_tokensTip:
'生成的最大令牌数取决于模型。提示和完成共享令牌数限制。一个令牌约等于 1 个英文或 半个中文字符。',
maxTokenSettingTip: '您设置的最大 tokens 数较大,可能会导致 prompt、用户问题、数据集内容没有 token 空间进行处理,建议设置到 2/3 以下。',
setToCurrentModelMaxTokenTip: '最大令牌数更新为当前模型最大的令牌数 {{maxToken}}。',
setToCurrentModelMaxTokenTip: '最大令牌数更新为当前模型最大的令牌数 {{maxToken}} 的 80%。',
},
tone: {
Creative: '创意',
@@ -202,6 +204,52 @@ const translation = {
back: ' 技术进行加密和存储。',
},
},
modelProvider: {
selectModel: '选择您的模型',
setupModelFirst: '请先设置您的模型',
systemReasoningModel: {
key: '系统推理模型',
tip: '系统推理模型',
},
embeddingModel: {
key: 'Embedding 模型',
tip: 'Embedding 模型',
},
speechToTextModel: {
key: '语音转文本模型',
tip: '语音转文本模型',
},
quota: '额度',
searchModel: '搜索模型',
noModelFound: '找不到模型 {{model}}',
models: '模型列表',
showMoreModelProvider: '显示更多模型提供商',
selector: {
tip: '该模型已被删除。请添模型或选择其他模型。',
},
card: {
quota: '额度',
onTrial: '试用中',
paid: '已购买',
quotaExhausted: '配额已用完',
callTimes: '调用次数',
tokens: 'Tokens',
buyQuota: '购买额度',
priorityUse: '优先使用',
removeKey: '删除 API 密钥',
tip: '已付费额度将优先考虑。 试用额度将在付费额度用完后使用。',
},
item: {
deleteDesc: '{{modelName}} 被用作系统推理模型。删除后部分功能将无法使用。请确认。',
freeQuota: '免费额度',
},
addApiKey: '添加您的 API 密钥',
invalidApiKey: 'Invalid API key',
encrypted: {
front: '您的密钥将使用',
back: '技术进行加密和存储。',
},
},
dataSource: {
add: '添加数据源',
connect: '绑定',
@@ -265,6 +313,17 @@ const translation = {
converting: '正在转换为文本...',
notAllow: '麦克风未授权',
},
modelName: {
'gpt-3.5-turbo': 'GPT-3.5-Turbo',
'gpt-3.5-turbo-16k': 'GPT-3.5-Turbo-16K',
'gpt-4': 'GPT-4',
'gpt-4-32k': 'GPT-4-32K',
'text-davinci-003': 'Text-Davinci-003',
'text-embedding-ada-002': 'Text-Embedding-Ada-002',
'whisper-1': 'Whisper-1',
'claude-instant-1': 'Claude-Instant',
'claude-2': 'Claude-2',
},
}
export default translation