From 888eabe15494e3b8b94aeafe60b88e74eeeb37b4 Mon Sep 17 00:00:00 2001 From: Liujian <824010343@qq.com> Date: Thu, 24 Oct 2024 23:30:25 +0800 Subject: [PATCH 1/2] finish fake ai --- .../fakegpt/assets/icon_l_en.svg | 23 +++++++++ .../fakegpt/assets/icon_s_en.svg | 23 +++++++++ .../model-providers/fakegpt/fakegpt.yaml | 30 +++++++++++ .../fakegpt/llm/fakegpt-1.0.yaml | 51 +++++++++++++++++++ .../vertex_ai/llm/gemini-1.0-pro-vision.yaml | 2 +- .../vertex_ai/llm/gemini-1.0-pro.yaml | 2 +- .../vertex_ai/llm/gemini-1.5-flash-001.yaml | 2 +- .../vertex_ai/llm/gemini-1.5-flash-002.yaml | 2 +- .../vertex_ai/llm/gemini-1.5-pro-001.yaml | 2 +- .../vertex_ai/llm/gemini-1.5-pro-002.yaml | 2 +- .../llm/gemini-flash-experimental.yaml | 2 +- .../llm/gemini-pro-experimental.yaml | 2 +- controller/system/iml.go | 8 +-- module/ai/iml.go | 6 ++- 14 files changed, 144 insertions(+), 13 deletions(-) create mode 100644 ai-provider/model-runtime/model-providers/fakegpt/assets/icon_l_en.svg create mode 100644 ai-provider/model-runtime/model-providers/fakegpt/assets/icon_s_en.svg create mode 100644 ai-provider/model-runtime/model-providers/fakegpt/fakegpt.yaml create mode 100644 ai-provider/model-runtime/model-providers/fakegpt/llm/fakegpt-1.0.yaml diff --git a/ai-provider/model-runtime/model-providers/fakegpt/assets/icon_l_en.svg b/ai-provider/model-runtime/model-providers/fakegpt/assets/icon_l_en.svg new file mode 100644 index 00000000..913864bf --- /dev/null +++ b/ai-provider/model-runtime/model-providers/fakegpt/assets/icon_l_en.svg @@ -0,0 +1,23 @@ + + + + + + + + + + \ No newline at end of file diff --git a/ai-provider/model-runtime/model-providers/fakegpt/assets/icon_s_en.svg b/ai-provider/model-runtime/model-providers/fakegpt/assets/icon_s_en.svg new file mode 100644 index 00000000..913864bf --- /dev/null +++ b/ai-provider/model-runtime/model-providers/fakegpt/assets/icon_s_en.svg @@ -0,0 +1,23 @@ + + + + + + + + + + \ No newline at end of file diff --git a/ai-provider/model-runtime/model-providers/fakegpt/fakegpt.yaml b/ai-provider/model-runtime/model-providers/fakegpt/fakegpt.yaml new file mode 100644 index 00000000..26bbd23d --- /dev/null +++ b/ai-provider/model-runtime/model-providers/fakegpt/fakegpt.yaml @@ -0,0 +1,30 @@ +provider: fakegpt +label: + en_US: FakeGPT +description: + en_US: FakeGPT is a fake model provider that does not actually connect to any model service. It is useful for testing and development purposes. +icon_small: + en_US: icon_s_en.svg +icon_large: + en_US: icon_l_en.svg +background: "#FCFDFF" +help: + title: + en_US: Get your Access Details from Google + url: + en_US: https://apipark.com +supported_model_types: + - llm + - text-embedding +configurate_methods: + - predefined-model +provider_credential_schema: + credential_form_schemas: + - variable: apikey + label: + en_US: API Key + type: secret-input + required: true + placeholder: + en_US: Enter your API key +address: https://apipark.com \ No newline at end of file diff --git a/ai-provider/model-runtime/model-providers/fakegpt/llm/fakegpt-1.0.yaml b/ai-provider/model-runtime/model-providers/fakegpt/llm/fakegpt-1.0.yaml new file mode 100644 index 00000000..ebee0690 --- /dev/null +++ b/ai-provider/model-runtime/model-providers/fakegpt/llm/fakegpt-1.0.yaml @@ -0,0 +1,51 @@ +model: fakegpt-1.0 +label: + en_US: FakeGPT 1.0 +model_type: llm +features: + - agent-thought + - vision +model_properties: + mode: chat + context_size: 200000 +parameter_rules: + - name: max_tokens + use_template: max_tokens + required: true + type: int + default: 4096 + min: 1 + max: 4096 + help: + zh_Hans: 停止前生成的最大令牌数。 + en_US: The maximum number of tokens to generate before stopping. + - name: temperature + use_template: temperature + required: false + type: float + default: 1 + min: 0.0 + max: 1.0 + help: + zh_Hans: 生成内容的随机性。 + en_US: The amount of randomness injected into the response. + - name: top_p + required: false + type: float + default: 0.999 + min: 0.000 + max: 1.000 + help: + zh_Hans: 在核采样中,按概率递减顺序计算每个后续标记的所有选项的累积分布,并在达到 top_p 指定的特定概率时将其切断。您应该更改温度或top_p,但不能同时更改两者。 + en_US: In nucleus sampling, computes the cumulative distribution over all the options for each subsequent token in decreasing probability order and cuts it off once it reaches a particular probability specified by top_p. You should alter either temperature or top_p, but not both. + - name: top_k + required: false + type: int + default: 0 + min: 0 + # tip docs from aws has error, max value is 500 + max: 500 + help: + zh_Hans: 对于每个后续标记,仅从前 K 个选项中进行采样。使用 top_k 删除长尾低概率响应。 + en_US: Only sample from the top K options for each subsequent token. Use top_k to remove long tail low probability responses. + diff --git a/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.0-pro-vision.yaml b/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.0-pro-vision.yaml index ebb276b8..4630f063 100644 --- a/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.0-pro-vision.yaml +++ b/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.0-pro-vision.yaml @@ -24,7 +24,7 @@ parameter_rules: use_template: presence_penalty - name: frequency_penalty use_template: frequency_penalty - - name: max_output_tokens + - name: max_tokens use_template: max_tokens required: true default: 2048 diff --git a/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.0-pro.yaml b/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.0-pro.yaml index c3259738..7a50d8c1 100644 --- a/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.0-pro.yaml +++ b/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.0-pro.yaml @@ -23,7 +23,7 @@ parameter_rules: use_template: presence_penalty - name: frequency_penalty use_template: frequency_penalty - - name: max_output_tokens + - name: max_tokens use_template: max_tokens required: true default: 8192 diff --git a/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.5-flash-001.yaml b/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.5-flash-001.yaml index f5386be0..1d9a0b0c 100644 --- a/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.5-flash-001.yaml +++ b/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.5-flash-001.yaml @@ -24,7 +24,7 @@ parameter_rules: use_template: presence_penalty - name: frequency_penalty use_template: frequency_penalty - - name: max_output_tokens + - name: max_tokens use_template: max_tokens required: true default: 8192 diff --git a/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.5-flash-002.yaml b/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.5-flash-002.yaml index 97bd44f0..066d4ba3 100644 --- a/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.5-flash-002.yaml +++ b/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.5-flash-002.yaml @@ -24,7 +24,7 @@ parameter_rules: use_template: presence_penalty - name: frequency_penalty use_template: frequency_penalty - - name: max_output_tokens + - name: max_tokens use_template: max_tokens required: true default: 8192 diff --git a/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.5-pro-001.yaml b/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.5-pro-001.yaml index 5e08f229..33d2c25a 100644 --- a/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.5-pro-001.yaml +++ b/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.5-pro-001.yaml @@ -24,7 +24,7 @@ parameter_rules: use_template: presence_penalty - name: frequency_penalty use_template: frequency_penalty - - name: max_output_tokens + - name: max_tokens use_template: max_tokens required: true default: 8192 diff --git a/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.5-pro-002.yaml b/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.5-pro-002.yaml index 8f327ea2..8b4c33cc 100644 --- a/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.5-pro-002.yaml +++ b/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-1.5-pro-002.yaml @@ -24,7 +24,7 @@ parameter_rules: use_template: presence_penalty - name: frequency_penalty use_template: frequency_penalty - - name: max_output_tokens + - name: max_tokens use_template: max_tokens required: true default: 8192 diff --git a/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-flash-experimental.yaml b/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-flash-experimental.yaml index 0f5eb34c..ef340372 100644 --- a/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-flash-experimental.yaml +++ b/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-flash-experimental.yaml @@ -24,7 +24,7 @@ parameter_rules: use_template: presence_penalty - name: frequency_penalty use_template: frequency_penalty - - name: max_output_tokens + - name: max_tokens use_template: max_tokens required: true default: 8192 diff --git a/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-pro-experimental.yaml b/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-pro-experimental.yaml index fa31cabb..cff10423 100644 --- a/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-pro-experimental.yaml +++ b/ai-provider/model-runtime/model-providers/vertex_ai/llm/gemini-pro-experimental.yaml @@ -24,7 +24,7 @@ parameter_rules: use_template: presence_penalty - name: frequency_penalty use_template: frequency_penalty - - name: max_output_tokens + - name: max_tokens use_template: max_tokens required: true default: 8192 diff --git a/controller/system/iml.go b/controller/system/iml.go index 3739419e..b05cac3c 100644 --- a/controller/system/iml.go +++ b/controller/system/iml.go @@ -319,12 +319,12 @@ func (i *imlInitController) OnInit() { } func (i *imlInitController) createAIService(ctx context.Context, teamID string, input *service_dto.CreateService) error { - providerId := "openai" - err := i.providerModule.UpdateProviderConfig(ctx, "openai", &ai_dto.UpdateConfig{ - Config: "{\n \"openai_api_base\": \"API Base\",\n \"openai_api_key\": \"API Key\",\n \"openai_organization\": \"Organization\"\n}", + providerId := "fakegpt" + err := i.providerModule.UpdateProviderConfig(ctx, providerId, &ai_dto.UpdateConfig{ + Config: "{\n \"apikey\": \"xxx\" \n}", }) if err != nil { - return fmt.Errorf("update openai config error: %v", err) + return fmt.Errorf("update %s config error: %v", providerId, err) } input.Provider = &providerId if input.Id == "" { diff --git a/module/ai/iml.go b/module/ai/iml.go index c1547850..65d17cc5 100644 --- a/module/ai/iml.go +++ b/module/ai/iml.go @@ -147,7 +147,11 @@ func (i *imlProviderModule) Provider(ctx context.Context, id string) (*ai_dto.Pr } defaultLLM, has := p.GetModel(info.DefaultLLM) if !has { - return nil, fmt.Errorf("ai provider llm not found") + model, has := p.DefaultModel(model_runtime.ModelTypeLLM) + if !has { + return nil, fmt.Errorf("ai provider llm not found") + } + defaultLLM = model } return &ai_dto.Provider{ Id: info.Id, From 9e253086efa24d07a3aa320cc53d9de209360af8 Mon Sep 17 00:00:00 2001 From: Liujian <824010343@qq.com> Date: Thu, 24 Oct 2024 23:42:55 +0800 Subject: [PATCH 2/2] fix get llm error --- module/ai/iml.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/ai/iml.go b/module/ai/iml.go index 65d17cc5..a6a0c8a2 100644 --- a/module/ai/iml.go +++ b/module/ai/iml.go @@ -201,7 +201,7 @@ func (i *imlProviderModule) LLMs(ctx context.Context, driver string) ([]*ai_dto. DefaultLLMLogo: defaultLLM.Logo(), Logo: p.Logo(), Configured: false, - }, err + }, nil } return items, &ai_dto.ProviderItem{Id: info.Id, Name: info.Name, DefaultLLM: info.DefaultLLM, Logo: p.Logo(), Configured: true}, nil