123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- import { FormSchema } from '@/components/Form';
- export const LLMProviders: any[] = [
- {
- model: 'openai',
- name: 'OpenAI',
- },
- {
- model: 'google',
- name: 'Google',
- },
- {
- model: 'ollama',
- name: 'Ollama',
- },
- {
- model: 'baidu',
- name: '百度大模型',
- },
- {
- model: 'alibaba',
- name: '阿里大模型',
- },
- ];
- export const columns = [
- {
- title: '供应商',
- key: 'name',
- },
- {
- title: '模型名称',
- key: 'model',
- },
- {
- title: '回复上限',
- key: 'responseLimit',
- width: '120',
- },
- {
- title: '生成随机性',
- key: 'temperature',
- width: '120',
- },
- {
- title: 'Top P',
- key: 'topP',
- width: '120',
- },
- {
- title: 'Api Key',
- key: 'apiKey',
- },
- ];
- export const formSchemas: FormSchema[] = [
- {
- field: 'id',
- label: 'ID',
- component: 'NInput',
- isHidden: true,
- },
- {
- field: 'provider',
- label: 'LLM供应商',
- component: 'NSelect',
- componentProps: {
- options: LLMProviders,
- labelField: 'name',
- valueField: 'model',
- },
- rules: [{ required: true, message: '请选择LLM供应商', trigger: ['blur'] }],
- },
- {
- field: 'model',
- label: '模型名称',
- labelMessage: '该LLM供应商对应的模型版本号',
- component: 'NInput',
- rules: [{ required: true, message: '请输入模型别名', trigger: ['blur'] }],
- },
- {
- field: 'name',
- label: '模型别名',
- component: 'NInput',
- rules: [{ required: true, message: '请输入模型别名', trigger: ['blur'] }],
- },
- {
- field: 'apiKey',
- label: 'Api Key',
- labelMessage: '模型链接的秘钥,注意有些模型例如Gemini是本地认证方式,则不是通过这种方式',
- component: 'NInput',
- // rules: [{ required: true, message: '请输入模型ApiKey', trigger: ['blur'] }],
- },
- {
- field: 'baseUrl',
- label: 'Base Url',
- labelMessage: '注意对于大多数模型此参数仅代表中转地址,但是对于Ollama这类本地模型则是必填的',
- component: 'NInput',
- },
- {
- field: 'responseLimit',
- label: '回复上限',
- labelMessage: '控制模型输出的Tokens长度上限。通常 100 Tokens 约等于150个中文汉字',
- component: 'NSlider',
- rules: [{ type: 'number', required: true, message: '请输入回复上限', trigger: ['blur'] }],
- componentProps: {
- showTooltip: true,
- defaultValue: 2000,
- step: 1,
- min: 1,
- max: 8192,
- },
- },
- {
- field: 'temperature',
- label: '生成随机性',
- labelMessage: '调高参数会使得模型的输出更多样性和创新性,反之降低参数将会减少多样性',
- component: 'NSlider',
- rules: [{ type: 'number', required: true, message: '请输入生成随机性', trigger: ['blur'] }],
- componentProps: {
- showTooltip: true,
- defaultValue: 0.8,
- step: 0.05,
- min: 0,
- max: 2,
- },
- },
- {
- field: 'topP',
- label: 'Top P',
- labelMessage:
- '模型在生成输出时会从概率最高的词汇开始选择,直到这些词汇的总概率累积达到Top p值。这样可以限制模型只选择这些高概率的词汇,从而控制输出内容的多样性。建议不要与“生成随机性“同时调整',
- component: 'NSlider',
- rules: [{ type: 'number', required: true, message: '请输入', trigger: ['blur'] }],
- componentProps: {
- showTooltip: true,
- defaultValue: 1,
- step: 0.1,
- min: 0,
- max: 1,
- },
- },
- ];
|