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