@shenghuabi/openai 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,7 +25,7 @@ export declare const ChatItemDefine: v.SchemaWithPipe<readonly [v.IntersectSchem
25
25
  readonly frequency_penalty: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -2, undefined>, v.MaxValueAction<number, 2, undefined>]>, undefined>, v.DescriptionAction<number | undefined, "取值范围为-2.0至2.0。正值会根据当前文本中已有标记的频率对新标记进行惩罚,从而降低模型逐字重复相同内容的概率。">]>;
26
26
  readonly presence_penalty: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -2, undefined>, v.MaxValueAction<number, 2, undefined>]>, undefined>, v.DescriptionAction<number | undefined, "数值介于-2.0至2.0之间。正值会基于新标记是否已在当前文本中出现,对新标记施加惩罚,从而提升模型讨论新话题的可能性。">]>;
27
27
  readonly seed: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>]>, undefined>, v.DescriptionAction<number | undefined, "若已指定,系统将尽力确保采样具有确定性,即使用相同种子和参数的重复请求将返回相同结果。确定性无法保证,请通过 system_fingerprint 响应参数监控后端变化。">]>;
28
- readonly stop: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>]>, undefined>, v.MaxLengthAction<string[], 4, undefined>]>, undefined>, v.DescriptionAction<string[] | undefined, "最多可指定4个停止序列,API将在生成到该序列时停止,返回的文本中不包含该停止序列。">, import("@piying/valibot-visit").GroupControlAction<string[] | undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>;
28
+ readonly stop: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>]>, undefined>, v.MaxLengthAction<string[], 4, undefined>]>, undefined>, v.DescriptionAction<string[] | undefined, "最多可指定4个停止序列,API将在生成到该序列时停止,返回的文本中不包含该停止序列。">, import("@piying/valibot-visit").GroupControlAction<string[] | undefined>, import("@piying/valibot-visit").DefineTypeAction<string[] | undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>;
29
29
  }, undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", {
30
30
  max_tokens: number;
31
31
  top_p: number;
@@ -139,7 +139,7 @@ export declare const VendorOptionsDefine: v.SchemaWithPipe<readonly [v.OptionalS
139
139
  readonly frequency_penalty: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -2, undefined>, v.MaxValueAction<number, 2, undefined>]>, undefined>, v.DescriptionAction<number | undefined, "取值范围为-2.0至2.0。正值会根据当前文本中已有标记的频率对新标记进行惩罚,从而降低模型逐字重复相同内容的概率。">]>;
140
140
  readonly presence_penalty: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -2, undefined>, v.MaxValueAction<number, 2, undefined>]>, undefined>, v.DescriptionAction<number | undefined, "数值介于-2.0至2.0之间。正值会基于新标记是否已在当前文本中出现,对新标记施加惩罚,从而提升模型讨论新话题的可能性。">]>;
141
141
  readonly seed: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>]>, undefined>, v.DescriptionAction<number | undefined, "若已指定,系统将尽力确保采样具有确定性,即使用相同种子和参数的重复请求将返回相同结果。确定性无法保证,请通过 system_fingerprint 响应参数监控后端变化。">]>;
142
- readonly stop: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>]>, undefined>, v.MaxLengthAction<string[], 4, undefined>]>, undefined>, v.DescriptionAction<string[] | undefined, "最多可指定4个停止序列,API将在生成到该序列时停止,返回的文本中不包含该停止序列。">, import("@piying/valibot-visit").GroupControlAction<string[] | undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>;
142
+ readonly stop: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>]>, undefined>, v.MaxLengthAction<string[], 4, undefined>]>, undefined>, v.DescriptionAction<string[] | undefined, "最多可指定4个停止序列,API将在生成到该序列时停止,返回的文本中不包含该停止序列。">, import("@piying/valibot-visit").GroupControlAction<string[] | undefined>, import("@piying/valibot-visit").DefineTypeAction<string[] | undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>;
143
143
  }, undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", {
144
144
  max_tokens: number;
145
145
  top_p: number;
@@ -253,7 +253,7 @@ export declare const VendorOptionsDefine: v.SchemaWithPipe<readonly [v.OptionalS
253
253
  stop?: string[] | undefined;
254
254
  }) | undefined;
255
255
  };
256
- } | undefined, "## 通用参数\n- `extraOptions`字段用于覆盖默认字段\n```json\n{\"厂商名(与vendor字段相同)\":{ \"extraOptions\":{\"temperature\":0.1,\"topP\":0.8,\"maxTokens\":8192,\"baseURL\":\"http://127.0.0.1:11434/v1\",\"apiKey\":\" \"} }\n```\n">, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", {
256
+ } | undefined, "## 通用参数\n- `extraOptions`字段用于覆盖默认字段\n```json\n{\"厂商名(与vendor字段相同)\":{ \"extraOptions\":{\"temperature\":0.1,\"topP\":0.8,\"maxTokens\":8192,\"baseURL\":\"http://127.0.0.1:11434/v1\",\"apiKey\":\" \"} }\n```\n">, import("@piying/valibot-visit").DefineTypeAction<{
257
257
  [x: string]: {
258
258
  extraOptions?: ({
259
259
  name: string;
@@ -273,7 +273,7 @@ export declare const VendorOptionsDefine: v.SchemaWithPipe<readonly [v.OptionalS
273
273
  stop?: string[] | undefined;
274
274
  }) | undefined;
275
275
  };
276
- } | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", {
276
+ } | undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", {
277
277
  [x: string]: {
278
278
  extraOptions?: ({
279
279
  name: string;
@@ -340,7 +340,7 @@ export declare const ChatParamsItemDefine: v.SchemaWithPipe<readonly [v.Intersec
340
340
  readonly frequency_penalty: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -2, undefined>, v.MaxValueAction<number, 2, undefined>]>, undefined>, v.DescriptionAction<number | undefined, "取值范围为-2.0至2.0。正值会根据当前文本中已有标记的频率对新标记进行惩罚,从而降低模型逐字重复相同内容的概率。">]>;
341
341
  readonly presence_penalty: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -2, undefined>, v.MaxValueAction<number, 2, undefined>]>, undefined>, v.DescriptionAction<number | undefined, "数值介于-2.0至2.0之间。正值会基于新标记是否已在当前文本中出现,对新标记施加惩罚,从而提升模型讨论新话题的可能性。">]>;
342
342
  readonly seed: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>]>, undefined>, v.DescriptionAction<number | undefined, "若已指定,系统将尽力确保采样具有确定性,即使用相同种子和参数的重复请求将返回相同结果。确定性无法保证,请通过 system_fingerprint 响应参数监控后端变化。">]>;
343
- readonly stop: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>]>, undefined>, v.MaxLengthAction<string[], 4, undefined>]>, undefined>, v.DescriptionAction<string[] | undefined, "最多可指定4个停止序列,API将在生成到该序列时停止,返回的文本中不包含该停止序列。">, import("@piying/valibot-visit").GroupControlAction<string[] | undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>;
343
+ readonly stop: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>]>, undefined>, v.MaxLengthAction<string[], 4, undefined>]>, undefined>, v.DescriptionAction<string[] | undefined, "最多可指定4个停止序列,API将在生成到该序列时停止,返回的文本中不包含该停止序列。">, import("@piying/valibot-visit").GroupControlAction<string[] | undefined>, import("@piying/valibot-visit").DefineTypeAction<string[] | undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>;
344
344
  }, undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", {
345
345
  max_tokens: number;
346
346
  top_p: number;
@@ -454,7 +454,7 @@ export declare const ChatParamsItemDefine: v.SchemaWithPipe<readonly [v.Intersec
454
454
  readonly frequency_penalty: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -2, undefined>, v.MaxValueAction<number, 2, undefined>]>, undefined>, v.DescriptionAction<number | undefined, "取值范围为-2.0至2.0。正值会根据当前文本中已有标记的频率对新标记进行惩罚,从而降低模型逐字重复相同内容的概率。">]>;
455
455
  readonly presence_penalty: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -2, undefined>, v.MaxValueAction<number, 2, undefined>]>, undefined>, v.DescriptionAction<number | undefined, "数值介于-2.0至2.0之间。正值会基于新标记是否已在当前文本中出现,对新标记施加惩罚,从而提升模型讨论新话题的可能性。">]>;
456
456
  readonly seed: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>]>, undefined>, v.DescriptionAction<number | undefined, "若已指定,系统将尽力确保采样具有确定性,即使用相同种子和参数的重复请求将返回相同结果。确定性无法保证,请通过 system_fingerprint 响应参数监控后端变化。">]>;
457
- readonly stop: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>]>, undefined>, v.MaxLengthAction<string[], 4, undefined>]>, undefined>, v.DescriptionAction<string[] | undefined, "最多可指定4个停止序列,API将在生成到该序列时停止,返回的文本中不包含该停止序列。">, import("@piying/valibot-visit").GroupControlAction<string[] | undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>;
457
+ readonly stop: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>]>, undefined>, v.MaxLengthAction<string[], 4, undefined>]>, undefined>, v.DescriptionAction<string[] | undefined, "最多可指定4个停止序列,API将在生成到该序列时停止,返回的文本中不包含该停止序列。">, import("@piying/valibot-visit").GroupControlAction<string[] | undefined>, import("@piying/valibot-visit").DefineTypeAction<string[] | undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>;
458
458
  }, undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", {
459
459
  max_tokens: number;
460
460
  top_p: number;
@@ -568,7 +568,7 @@ export declare const ChatParamsItemDefine: v.SchemaWithPipe<readonly [v.Intersec
568
568
  stop?: string[] | undefined;
569
569
  }) | undefined;
570
570
  };
571
- } | undefined, "## 通用参数\n- `extraOptions`字段用于覆盖默认字段\n```json\n{\"厂商名(与vendor字段相同)\":{ \"extraOptions\":{\"temperature\":0.1,\"topP\":0.8,\"maxTokens\":8192,\"baseURL\":\"http://127.0.0.1:11434/v1\",\"apiKey\":\" \"} }\n```\n">, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", {
571
+ } | undefined, "## 通用参数\n- `extraOptions`字段用于覆盖默认字段\n```json\n{\"厂商名(与vendor字段相同)\":{ \"extraOptions\":{\"temperature\":0.1,\"topP\":0.8,\"maxTokens\":8192,\"baseURL\":\"http://127.0.0.1:11434/v1\",\"apiKey\":\" \"} }\n```\n">, import("@piying/valibot-visit").DefineTypeAction<{
572
572
  [x: string]: {
573
573
  extraOptions?: ({
574
574
  name: string;
@@ -588,7 +588,7 @@ export declare const ChatParamsItemDefine: v.SchemaWithPipe<readonly [v.Intersec
588
588
  stop?: string[] | undefined;
589
589
  }) | undefined;
590
590
  };
591
- } | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", {
591
+ } | undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", {
592
592
  [x: string]: {
593
593
  extraOptions?: ({
594
594
  name: string;
@@ -732,7 +732,7 @@ export declare const ChatParamsListDefine: v.SchemaWithPipe<readonly [v.ArraySch
732
732
  readonly frequency_penalty: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -2, undefined>, v.MaxValueAction<number, 2, undefined>]>, undefined>, v.DescriptionAction<number | undefined, "取值范围为-2.0至2.0。正值会根据当前文本中已有标记的频率对新标记进行惩罚,从而降低模型逐字重复相同内容的概率。">]>;
733
733
  readonly presence_penalty: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -2, undefined>, v.MaxValueAction<number, 2, undefined>]>, undefined>, v.DescriptionAction<number | undefined, "数值介于-2.0至2.0之间。正值会基于新标记是否已在当前文本中出现,对新标记施加惩罚,从而提升模型讨论新话题的可能性。">]>;
734
734
  readonly seed: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>]>, undefined>, v.DescriptionAction<number | undefined, "若已指定,系统将尽力确保采样具有确定性,即使用相同种子和参数的重复请求将返回相同结果。确定性无法保证,请通过 system_fingerprint 响应参数监控后端变化。">]>;
735
- readonly stop: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>]>, undefined>, v.MaxLengthAction<string[], 4, undefined>]>, undefined>, v.DescriptionAction<string[] | undefined, "最多可指定4个停止序列,API将在生成到该序列时停止,返回的文本中不包含该停止序列。">, import("@piying/valibot-visit").GroupControlAction<string[] | undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>;
735
+ readonly stop: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>]>, undefined>, v.MaxLengthAction<string[], 4, undefined>]>, undefined>, v.DescriptionAction<string[] | undefined, "最多可指定4个停止序列,API将在生成到该序列时停止,返回的文本中不包含该停止序列。">, import("@piying/valibot-visit").GroupControlAction<string[] | undefined>, import("@piying/valibot-visit").DefineTypeAction<string[] | undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>;
736
736
  }, undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", {
737
737
  max_tokens: number;
738
738
  top_p: number;
@@ -846,7 +846,7 @@ export declare const ChatParamsListDefine: v.SchemaWithPipe<readonly [v.ArraySch
846
846
  readonly frequency_penalty: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -2, undefined>, v.MaxValueAction<number, 2, undefined>]>, undefined>, v.DescriptionAction<number | undefined, "取值范围为-2.0至2.0。正值会根据当前文本中已有标记的频率对新标记进行惩罚,从而降低模型逐字重复相同内容的概率。">]>;
847
847
  readonly presence_penalty: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -2, undefined>, v.MaxValueAction<number, 2, undefined>]>, undefined>, v.DescriptionAction<number | undefined, "数值介于-2.0至2.0之间。正值会基于新标记是否已在当前文本中出现,对新标记施加惩罚,从而提升模型讨论新话题的可能性。">]>;
848
848
  readonly seed: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>]>, undefined>, v.DescriptionAction<number | undefined, "若已指定,系统将尽力确保采样具有确定性,即使用相同种子和参数的重复请求将返回相同结果。确定性无法保证,请通过 system_fingerprint 响应参数监控后端变化。">]>;
849
- readonly stop: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>]>, undefined>, v.MaxLengthAction<string[], 4, undefined>]>, undefined>, v.DescriptionAction<string[] | undefined, "最多可指定4个停止序列,API将在生成到该序列时停止,返回的文本中不包含该停止序列。">, import("@piying/valibot-visit").GroupControlAction<string[] | undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>;
849
+ readonly stop: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>]>, undefined>, v.MaxLengthAction<string[], 4, undefined>]>, undefined>, v.DescriptionAction<string[] | undefined, "最多可指定4个停止序列,API将在生成到该序列时停止,返回的文本中不包含该停止序列。">, import("@piying/valibot-visit").GroupControlAction<string[] | undefined>, import("@piying/valibot-visit").DefineTypeAction<string[] | undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>;
850
850
  }, undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", {
851
851
  max_tokens: number;
852
852
  top_p: number;
@@ -960,7 +960,7 @@ export declare const ChatParamsListDefine: v.SchemaWithPipe<readonly [v.ArraySch
960
960
  stop?: string[] | undefined;
961
961
  }) | undefined;
962
962
  };
963
- } | undefined, "## 通用参数\n- `extraOptions`字段用于覆盖默认字段\n```json\n{\"厂商名(与vendor字段相同)\":{ \"extraOptions\":{\"temperature\":0.1,\"topP\":0.8,\"maxTokens\":8192,\"baseURL\":\"http://127.0.0.1:11434/v1\",\"apiKey\":\" \"} }\n```\n">, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", {
963
+ } | undefined, "## 通用参数\n- `extraOptions`字段用于覆盖默认字段\n```json\n{\"厂商名(与vendor字段相同)\":{ \"extraOptions\":{\"temperature\":0.1,\"topP\":0.8,\"maxTokens\":8192,\"baseURL\":\"http://127.0.0.1:11434/v1\",\"apiKey\":\" \"} }\n```\n">, import("@piying/valibot-visit").DefineTypeAction<{
964
964
  [x: string]: {
965
965
  extraOptions?: ({
966
966
  name: string;
@@ -980,7 +980,7 @@ export declare const ChatParamsListDefine: v.SchemaWithPipe<readonly [v.ArraySch
980
980
  stop?: string[] | undefined;
981
981
  }) | undefined;
982
982
  };
983
- } | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", {
983
+ } | undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", {
984
984
  [x: string]: {
985
985
  extraOptions?: ({
986
986
  name: string;
@@ -1097,7 +1097,7 @@ export declare const ChatParamsListDefine: v.SchemaWithPipe<readonly [v.ArraySch
1097
1097
  }) | undefined;
1098
1098
  };
1099
1099
  } | undefined;
1100
- }, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>, undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", ({
1100
+ }, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>, undefined>, import("@piying/valibot-visit").DefineTypeAction<({
1101
1101
  name: string;
1102
1102
  vendor: "deepseek" | "openai" | "360" | "azure" | "moonshot" | "baichuan" | "minimax" | "mistralai" | "groq" | "lingyiwanwu" | "stepfun" | "together.ai" | "volcengine" | "novita" | "siliconflow" | "tongyi" | "zhipu" | "spark" | "hunyuan" | "gemini" | "claude";
1103
1103
  } & {
@@ -1135,7 +1135,7 @@ export declare const ChatParamsListDefine: v.SchemaWithPipe<readonly [v.ArraySch
1135
1135
  }) | undefined;
1136
1136
  };
1137
1137
  } | undefined;
1138
- })[], import("@piying/view-angular-core").AnyCoreSchemaHandle>, v.DescriptionAction<({
1138
+ })[]>, v.DescriptionAction<({
1139
1139
  name: string;
1140
1140
  vendor: "deepseek" | "openai" | "360" | "azure" | "moonshot" | "baichuan" | "minimax" | "mistralai" | "groq" | "lingyiwanwu" | "stepfun" | "together.ai" | "volcengine" | "novita" | "siliconflow" | "tongyi" | "zhipu" | "spark" | "hunyuan" | "gemini" | "claude";
1141
1141
  } & {
@@ -1267,7 +1267,7 @@ export declare const InputChatOptionsDefine: v.SchemaWithPipe<readonly [v.Inters
1267
1267
  readonly frequency_penalty: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -2, undefined>, v.MaxValueAction<number, 2, undefined>]>, undefined>, v.DescriptionAction<number | undefined, "取值范围为-2.0至2.0。正值会根据当前文本中已有标记的频率对新标记进行惩罚,从而降低模型逐字重复相同内容的概率。">]>;
1268
1268
  readonly presence_penalty: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -2, undefined>, v.MaxValueAction<number, 2, undefined>]>, undefined>, v.DescriptionAction<number | undefined, "数值介于-2.0至2.0之间。正值会基于新标记是否已在当前文本中出现,对新标记施加惩罚,从而提升模型讨论新话题的可能性。">]>;
1269
1269
  readonly seed: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>]>, undefined>, v.DescriptionAction<number | undefined, "若已指定,系统将尽力确保采样具有确定性,即使用相同种子和参数的重复请求将返回相同结果。确定性无法保证,请通过 system_fingerprint 响应参数监控后端变化。">]>;
1270
- readonly stop: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>]>, undefined>, v.MaxLengthAction<string[], 4, undefined>]>, undefined>, v.DescriptionAction<string[] | undefined, "最多可指定4个停止序列,API将在生成到该序列时停止,返回的文本中不包含该停止序列。">, import("@piying/valibot-visit").GroupControlAction<string[] | undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>;
1270
+ readonly stop: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>]>, undefined>, v.MaxLengthAction<string[], 4, undefined>]>, undefined>, v.DescriptionAction<string[] | undefined, "最多可指定4个停止序列,API将在生成到该序列时停止,返回的文本中不包含该停止序列。">, import("@piying/valibot-visit").GroupControlAction<string[] | undefined>, import("@piying/valibot-visit").DefineTypeAction<string[] | undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>;
1271
1271
  }, undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", {
1272
1272
  max_tokens: number;
1273
1273
  top_p: number;
@@ -1349,7 +1349,7 @@ export declare const InputChatOptionsDefine: v.SchemaWithPipe<readonly [v.Inters
1349
1349
  readonly frequency_penalty: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -2, undefined>, v.MaxValueAction<number, 2, undefined>]>, undefined>, v.DescriptionAction<number | undefined, "取值范围为-2.0至2.0。正值会根据当前文本中已有标记的频率对新标记进行惩罚,从而降低模型逐字重复相同内容的概率。">]>;
1350
1350
  readonly presence_penalty: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, -2, undefined>, v.MaxValueAction<number, 2, undefined>]>, undefined>, v.DescriptionAction<number | undefined, "数值介于-2.0至2.0之间。正值会基于新标记是否已在当前文本中出现,对新标记施加惩罚,从而提升模型讨论新话题的可能性。">]>;
1351
1351
  readonly seed: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>]>, undefined>, v.DescriptionAction<number | undefined, "若已指定,系统将尽力确保采样具有确定性,即使用相同种子和参数的重复请求将返回相同结果。确定性无法保证,请通过 system_fingerprint 响应参数监控后端变化。">]>;
1352
- readonly stop: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>]>, undefined>, v.MaxLengthAction<string[], 4, undefined>]>, undefined>, v.DescriptionAction<string[] | undefined, "最多可指定4个停止序列,API将在生成到该序列时停止,返回的文本中不包含该停止序列。">, import("@piying/valibot-visit").GroupControlAction<string[] | undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>;
1352
+ readonly stop: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>]>, undefined>, v.MaxLengthAction<string[], 4, undefined>]>, undefined>, v.DescriptionAction<string[] | undefined, "最多可指定4个停止序列,API将在生成到该序列时停止,返回的文本中不包含该停止序列。">, import("@piying/valibot-visit").GroupControlAction<string[] | undefined>, import("@piying/valibot-visit").DefineTypeAction<string[] | undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", string[] | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>]>;
1353
1353
  }, undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", {
1354
1354
  max_tokens: number;
1355
1355
  top_p: number;
@@ -1463,7 +1463,7 @@ export declare const InputChatOptionsDefine: v.SchemaWithPipe<readonly [v.Inters
1463
1463
  stop?: string[] | undefined;
1464
1464
  }) | undefined;
1465
1465
  };
1466
- } | undefined, "## 通用参数\n- `extraOptions`字段用于覆盖默认字段\n```json\n{\"厂商名(与vendor字段相同)\":{ \"extraOptions\":{\"temperature\":0.1,\"topP\":0.8,\"maxTokens\":8192,\"baseURL\":\"http://127.0.0.1:11434/v1\",\"apiKey\":\" \"} }\n```\n">, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", {
1466
+ } | undefined, "## 通用参数\n- `extraOptions`字段用于覆盖默认字段\n```json\n{\"厂商名(与vendor字段相同)\":{ \"extraOptions\":{\"temperature\":0.1,\"topP\":0.8,\"maxTokens\":8192,\"baseURL\":\"http://127.0.0.1:11434/v1\",\"apiKey\":\" \"} }\n```\n">, import("@piying/valibot-visit").DefineTypeAction<{
1467
1467
  [x: string]: {
1468
1468
  extraOptions?: ({
1469
1469
  name: string;
@@ -1483,7 +1483,7 @@ export declare const InputChatOptionsDefine: v.SchemaWithPipe<readonly [v.Inters
1483
1483
  stop?: string[] | undefined;
1484
1484
  }) | undefined;
1485
1485
  };
1486
- } | undefined, import("@piying/view-angular-core").AnyCoreSchemaHandle>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", {
1486
+ } | undefined>, import("@piying/valibot-visit").RawConfigAction<"viewRawConfig", {
1487
1487
  [x: string]: {
1488
1488
  extraOptions?: ({
1489
1489
  name: string;
package/define/index.js CHANGED
@@ -236,7 +236,7 @@ var vendorOptionsDescribe = `## 通用参数
236
236
  {"厂商名(与vendor字段相同)":{ "extraOptions":{"temperature":0.1,"topP":0.8,"maxTokens":8192,"baseURL":"http://127.0.0.1:11434/v1","apiKey":" "} }
237
237
  \`\`\`
238
238
  `;
239
- var InputWrapper = (0, import_valibot_visit.metadataPipe)((0, import_view_angular_core.patchWrappers)(["tooltip", "form-field"]));
239
+ var InputWrapper = (0, import_valibot_visit.metadataPipe)(import_view_angular_core.actions.wrappers.set(["tooltip", "form-field"]));
240
240
  var ChatItemDefine = v2.pipe(
241
241
  v2.intersect([
242
242
  v2.pipe(
@@ -258,12 +258,12 @@ var ChatItemDefine = v2.pipe(
258
258
  ].filter(Boolean).join("\n")
259
259
  }))
260
260
  }),
261
- (0, import_view_angular_core.patchInputs)({
261
+ import_view_angular_core.actions.inputs.patch({
262
262
  options: VendorList
263
263
  })
264
264
  )
265
265
  }),
266
- (0, import_view_angular_core.componentClass)("flex *:flex-1 gap-2 items-center")
266
+ import_view_angular_core.actions.class.component("flex *:flex-1 gap-2 items-center")
267
267
  ),
268
268
  v2.pipe(
269
269
  v2.object({
@@ -282,7 +282,7 @@ var ChatItemDefine = v2.pipe(
282
282
  ...InputWrapper
283
283
  )
284
284
  }),
285
- (0, import_view_angular_core.componentClass)("flex *:flex-1 gap-2 items-center")
285
+ import_view_angular_core.actions.class.component("flex *:flex-1 gap-2 items-center")
286
286
  ),
287
287
  v2.object({
288
288
  apiKey: v2.pipe(
@@ -337,7 +337,7 @@ var ChatItemDefine = v2.pipe(
337
337
  ),
338
338
  (0, import_view_angular_core.asControl)(),
339
339
  (0, import_view_angular_core.setComponent)("chip-input-list"),
340
- (0, import_view_angular_core.patchInputs)({
340
+ import_view_angular_core.actions.inputs.patch({
341
341
  addOnBlur: true
342
342
  }),
343
343
  ...InputWrapper
@@ -361,10 +361,10 @@ var ChatItemDefine = v2.pipe(
361
361
  // ),
362
362
  // ),
363
363
  }),
364
- (0, import_view_angular_core.componentClass)("grid gap-2")
364
+ import_view_angular_core.actions.class.component("grid gap-2")
365
365
  )
366
366
  ]),
367
- (0, import_view_angular_core.componentClass)("grid gap-2"),
367
+ import_view_angular_core.actions.class.component("grid gap-2"),
368
368
  (0, import_valibot_visit.asVirtualGroup)()
369
369
  );
370
370
  var VendorOptionsDefine = v2.pipe(
@@ -381,14 +381,14 @@ var VendorOptionsDefine = v2.pipe(
381
381
  )
382
382
  })
383
383
  ]),
384
- (0, import_view_angular_core.componentClass)("grid gap-2"),
384
+ import_view_angular_core.actions.class.component("grid gap-2"),
385
385
  (0, import_valibot_visit.asVirtualGroup)()
386
386
  )
387
387
  )
388
388
  ),
389
389
  v2.description(vendorOptionsDescribe),
390
390
  (0, import_view_angular_core.setComponent)("rest-chip-group"),
391
- (0, import_view_angular_core.patchInputs)({
391
+ import_view_angular_core.actions.inputs.patch({
392
392
  optionalkeyList: VendorList.map((item) => item.value),
393
393
  placeholder: "请设置额外配置"
394
394
  }),
@@ -400,13 +400,13 @@ var ChatParamsItemDefine = v2.pipe(
400
400
  v2.object({ vendorOptions: VendorOptionsDefine })
401
401
  ]),
402
402
  (0, import_valibot_visit.asVirtualGroup)(),
403
- (0, import_view_angular_core.componentClass)("grid gap-2")
403
+ import_view_angular_core.actions.class.component("grid gap-2")
404
404
  );
405
405
  var ChatParamsListDefine = v2.pipe(
406
406
  v2.array(ChatParamsItemDefine),
407
407
  (0, import_view_angular_core.setComponent)("label-chip-array"),
408
408
  v2.description("对话模型列表,目前用于切换使用"),
409
- (0, import_view_angular_core.patchInputs)({
409
+ import_view_angular_core.actions.inputs.patch({
410
410
  displayKey: "name",
411
411
  placeholder: "请添加配置"
412
412
  })
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/openai/define/index.ts", "../../../packages/openai/chat/message.define.ts", "../../../packages/openai/chat/options.define.ts"],
4
- "sourcesContent": ["export * from '../chat/message.define';\nexport * from '../chat/options.define';\n", "import * as v from 'valibot';\nexport const ChatCompletionContentPartStr = v.object({\n text: v.string(),\n type: v.optional(v.literal('text'), 'text'),\n});\nexport type ChatCompletionContentPartStrType = v.InferOutput<\n typeof ChatCompletionContentPartStr\n>;\n\nexport const ChatCompletionContentPartImage = v.object({\n image_url: v.object({\n url: v.string(),\n detail: v.optional(v.picklist(['auto', 'low', 'high'])),\n }),\n type: v.optional(v.literal('image_url'), 'image_url'),\n});\nexport type ChatCompletionContentPartImageType = v.InferOutput<\n typeof ChatCompletionContentPartImage\n>;\nexport const ChatCompletionContentPart = v.array(\n v.union([ChatCompletionContentPartStr, ChatCompletionContentPartImage]),\n);\nexport const SystemChatCompletionContent = v.array(\n ChatCompletionContentPartStr,\n);\nexport const UserChatCompletionContent = ChatCompletionContentPart;\nexport type UserChatCompletionContentType = v.InferOutput<\n typeof UserChatCompletionContent\n>;\nexport const AssistantChatCompletionContent = v.array(\n ChatCompletionContentPartStr,\n);\nexport const SystemChatMessage = v.object({\n role: v.optional(v.literal('system'), 'system'),\n content: SystemChatCompletionContent,\n});\nexport type SystemChatMessageType = v.InferOutput<typeof SystemChatMessage>;\nexport const UserChatMessage = v.object({\n role: v.optional(v.literal('user'), 'user'),\n content: UserChatCompletionContent,\n});\nexport type UserChatMessageType = v.InferOutput<typeof UserChatMessage>;\n\nexport const AssistantChatMessage = v.object({\n role: v.optional(v.literal('assistant'), 'assistant'),\n content: AssistantChatCompletionContent,\n thinkContent: v.optional(v.string()),\n});\n\nexport type AssistantChatMessageType = v.InferOutput<\n typeof AssistantChatMessage\n>;\n\nexport const ChatMessageItemDefine = v.union([\n SystemChatMessage,\n UserChatMessage,\n AssistantChatMessage,\n]);\nexport type ChatMessageItemType = v.InferOutput<typeof ChatMessageItemDefine>;\nexport const ChatMessageListDefine = v.array(ChatMessageItemDefine);\n\nexport type ChatMessageListOutputType = v.InferOutput<\n typeof ChatMessageListDefine\n>;\nexport type ChatMessageListInputType = v.InferOutput<\n typeof ChatMessageListDefine\n>;\n", "import {\n asControl,\n componentClass,\n patchInputs,\n patchWrappers,\n setComponent,\n} from '@piying/view-angular-core';\nimport * as v from 'valibot';\nimport {\n asVirtualGroup,\n metadataPipe,\n omitIntersect,\n} from '@piying/valibot-visit';\nconst VendorList = [\n {\n value: 'openai',\n label: 'openai',\n options: {\n baseURL: '',\n modelList: [],\n description: '如果是openai兼容的厂商,需要设置baseURL',\n },\n },\n {\n value: '360',\n label: '360',\n options: { baseURL: 'https://ai.360.cn', modelList: [] },\n },\n {\n value: 'azure',\n label: 'azure',\n options: { baseURL: '', modelList: [] },\n },\n {\n value: 'moonshot',\n label: 'moonshot',\n options: { baseURL: 'https://api.moonshot.cn', modelList: [] },\n },\n {\n value: 'baichuan',\n label: 'baichuan',\n options: { baseURL: 'https://api.baichuan-ai.com', modelList: [] },\n },\n {\n value: 'minimax',\n label: 'minimax',\n options: { baseURL: 'https://api.minimax.chat', modelList: [] },\n },\n {\n value: 'mistralai',\n label: 'mistralai',\n options: { baseURL: 'https://api.mistral.ai', modelList: [] },\n },\n {\n value: 'groq',\n label: 'groq',\n options: { baseURL: 'https://api.groq.com/openai', modelList: [] },\n },\n {\n value: 'lingyiwanwu',\n label: 'lingyiwanwu',\n options: { baseURL: 'https://api.lingyiwanwu.com', modelList: [] },\n },\n {\n value: 'stepfun',\n label: 'stepfun',\n options: { baseURL: 'https://api.stepfun.com', modelList: [] },\n },\n {\n value: 'deepseek',\n label: 'deepseek',\n options: { baseURL: 'https://api.deepseek.com', modelList: [] },\n },\n {\n value: 'together.ai',\n label: 'together.ai',\n options: { baseURL: 'https://api.together.xyz', modelList: [] },\n },\n {\n value: 'volcengine',\n label: 'volcengine',\n options: {\n baseURL: 'https://ark.cn-beijing.volces.com/api/v3',\n modelList: [],\n },\n },\n {\n value: 'novita',\n label: 'novita',\n options: { baseURL: 'https://api.novita.ai/v3/openai', modelList: [] },\n },\n {\n value: 'siliconflow',\n label: 'siliconflow',\n options: { baseURL: 'https://api.siliconflow.cn', modelList: [] },\n },\n {\n value: 'tongyi',\n label: 'tongyi',\n options: {\n baseURL: 'https://dashscope.aliyuncs.com/compatible-mode/v1',\n modelList: [],\n },\n },\n {\n value: 'zhipu',\n label: 'zhipu',\n options: {\n baseURL: 'https://open.bigmodel.cn/api/paas/v4',\n modelList: [],\n },\n },\n {\n value: 'spark',\n label: 'spark',\n options: {\n baseURL: 'https://spark-api-open.xf-yun.com/v1',\n modelList: [],\n },\n },\n {\n value: 'hunyuan',\n label: 'hunyuan',\n options: {\n baseURL: 'https://api.hunyuan.cloud.tencent.com/v1',\n modelList: [],\n },\n },\n\n {\n value: 'gemini',\n label: 'gemini',\n options: {\n baseURL: '',\n modelList: [],\n description: '非openai兼容,手动适配,如果有问题欢迎报告',\n },\n },\n {\n value: 'claude',\n label: 'claude',\n options: {\n baseURL: '',\n modelList: [],\n description: '非openai兼容,手动适配,如果有问题欢迎报告',\n },\n },\n] as const;\nconst vendorOptionsDescribe = `## 通用参数\n- \\`extraOptions\\`字段用于覆盖默认字段\n\\`\\`\\`json\n{\"厂商名(与vendor字段相同)\":{ \"extraOptions\":{\"temperature\":0.1,\"topP\":0.8,\"maxTokens\":8192,\"baseURL\":\"http://127.0.0.1:11434/v1\",\"apiKey\":\" \"} }\n\\`\\`\\`\n`;\nconst InputWrapper = metadataPipe(patchWrappers(['tooltip', 'form-field']));\n\nexport const ChatItemDefine = v.pipe(\n v.intersect([\n v.pipe(\n v.object({\n name: v.pipe(v.string(), v.title('配置名')),\n vendor: v.pipe(\n v.optional(\n v.picklist(VendorList.map((item) => item.value)),\n 'openai',\n ),\n v.description('大语言模型提供的厂商'),\n v.title('对话厂商'),\n v.metadata({\n enumOptions: VendorList.map((item) => ({\n label: item.label,\n description: [\n (item.options as any).description\n ? (item.options as any).description\n : '',\n item.options.baseURL ? `链接: ${item.options.baseURL}` : '',\n ]\n .filter(Boolean)\n .join('\\n'),\n })),\n }),\n patchInputs({\n options: VendorList,\n }),\n ),\n }),\n componentClass('flex *:flex-1 gap-2 items-center'),\n ),\n v.pipe(\n v.object({\n baseURL: v.pipe(\n v.optional(v.string(), 'http://127.0.0.1:11434/v1'),\n v.title('地址'),\n v.description('openai兼容接口'),\n ...InputWrapper,\n ),\n model: v.pipe(\n v.optional(v.string(), `qwen3:8b`),\n v.title('模型'),\n v.description(\n '## 模型名\\n### ollama模型推荐\\n- `qwen3:8b`\\n- `qwen3:14b`,`deepseek-r1:7b`,`deepseek-r1:14b`\\n### 图片对话模型\\n- `minicpm-v:8b`',\n ),\n ...InputWrapper,\n ),\n }),\n componentClass('flex *:flex-1 gap-2 items-center'),\n ),\n v.object({\n apiKey: v.pipe(\n v.optional(v.string()),\n v.description('本地部署默认可以不填'),\n ),\n }),\n v.pipe(\n v.object({\n max_tokens: v.pipe(v.optional(v.number(), 8192)),\n top_p: v.pipe(\n v.optional(v.number(), 0.8),\n v.minValue(0),\n v.maxValue(10),\n v.description(`核采样(nucleus sampling)是温度采样的另一种替代方法,模型会考虑累积概率质量达到 top_p 的 token。例如,当 top_p 设为 0.1 时,仅考虑累积概率前 10% 的 token。\n\n我们通常建议调整 top_p 或温度参数,但不要同时调整两者。`),\n ...InputWrapper,\n ),\n temperature: v.pipe(\n v.optional(v.pipe(v.number(), v.minValue(0), v.maxValue(2)), 0.1),\n v.description(\n '采样温度应设置在0到2之间。较高的值(如0.8)会使输出更随机,而较低的值(如0.2)则会使输出更集中且确定。我们通常建议仅调整此参数或top_p,而不同时调整两者。',\n ),\n ...InputWrapper,\n ),\n frequency_penalty: v.pipe(\n v.optional(v.pipe(v.number(), v.minValue(-2), v.maxValue(2))),\n v.description(\n '取值范围为-2.0至2.0。正值会根据当前文本中已有标记的频率对新标记进行惩罚,从而降低模型逐字重复相同内容的概率。',\n ),\n ...InputWrapper,\n ),\n presence_penalty: v.pipe(\n v.optional(v.pipe(v.number(), v.minValue(-2), v.maxValue(2))),\n v.description(\n '数值介于-2.0至2.0之间。正值会基于新标记是否已在当前文本中出现,对新标记施加惩罚,从而提升模型讨论新话题的可能性。',\n ),\n ...InputWrapper,\n ),\n seed: v.pipe(\n v.optional(v.pipe(v.number())),\n v.description(\n '若已指定,系统将尽力确保采样具有确定性,即使用相同种子和参数的重复请求将返回相同结果。确定性无法保证,请通过 system_fingerprint 响应参数监控后端变化。',\n ),\n ...InputWrapper,\n ),\n stop: v.pipe(\n v.optional(v.pipe(v.array(v.pipe(v.string())), v.maxLength(4))),\n v.description(\n '最多可指定4个停止序列,API将在生成到该序列时停止,返回的文本中不包含该停止序列。',\n ),\n asControl(),\n setComponent('chip-input-list'),\n patchInputs({\n addOnBlur: true,\n }),\n ...InputWrapper,\n ),\n // top_logprobs: v.pipe(\n // v.optional(v.pipe(v.number(), v.minValue(0), v.maxValue(20))),\n // v.description(\n // '一个介于0和20之间的整数,用于指定在每个标记位置返回的最可能的标记数量,每个标记均关联对应的对数概率。若使用此参数,则必须将logprobs设置为true。',\n // ),\n // ),\n\n // verbosity: v.pipe(\n // v.optional(v.picklist(['low', 'medium', 'high'])),\n // v.description(\n // `控制模型回复的详细程度。数值越低,回复越简洁;数值越高,回复越详细。当前支持的取值为低、中和高。`,\n // ),\n // ),\n // reasoning_effort: v.pipe(\n // v.optional(v.picklist(['minimal', 'low', 'medium', 'high'])),\n // v.description(\n // `控制模型回复的详细程度。数值越低,回复越简洁;数值越高,回复越详细。当前支持的取值为低、中和高。`,\n // ),\n // ),\n }),\n componentClass('grid gap-2'),\n ),\n ]),\n componentClass('grid gap-2'),\n asVirtualGroup(),\n);\n\nexport const VendorOptionsDefine = v.pipe(\n v.optional(\n v.record(\n v.string(),\n v.pipe(\n v.intersect([\n v.object({\n /** @internal */\n extraOptions: v.pipe(\n v.optional(omitIntersect(ChatItemDefine, ['name', 'vendor'])),\n v.description(`附加配置`),\n ),\n }),\n ]),\n componentClass('grid gap-2'),\n asVirtualGroup(),\n ),\n ),\n ),\n v.description(vendorOptionsDescribe),\n setComponent('rest-chip-group'),\n patchInputs({\n optionalkeyList: VendorList.map((item) => item.value),\n placeholder: '请设置额外配置',\n }),\n v.title('厂商额外配置'),\n);\nexport const ChatParamsItemDefine = v.pipe(\n v.intersect([\n ChatItemDefine,\n v.object({ vendorOptions: VendorOptionsDefine }),\n ]),\n asVirtualGroup(),\n componentClass('grid gap-2'),\n);\n\nexport const ChatParamsListDefine = v.pipe(\n v.array(ChatParamsItemDefine),\n setComponent('label-chip-array'),\n v.description('对话模型列表,目前用于切换使用'),\n patchInputs({\n displayKey: 'name',\n placeholder: '请添加配置',\n }),\n);\nexport type ChatModelOptions = v.InferOutput<typeof ChatParamsItemDefine>;\nexport type ChatModelOptionsInput = v.InferInput<typeof ChatParamsItemDefine>;\n\nexport const InputChatOptionsDefine = omitIntersect(ChatParamsItemDefine, [\n 'name',\n]);\nexport type CreateChatModelOptions = v.InferInput<\n typeof InputChatOptionsDefine\n>;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["export * from '../chat/message.define';\nexport * from '../chat/options.define';\n", "import * as v from 'valibot';\nexport const ChatCompletionContentPartStr = v.object({\n text: v.string(),\n type: v.optional(v.literal('text'), 'text'),\n});\nexport type ChatCompletionContentPartStrType = v.InferOutput<\n typeof ChatCompletionContentPartStr\n>;\n\nexport const ChatCompletionContentPartImage = v.object({\n image_url: v.object({\n url: v.string(),\n detail: v.optional(v.picklist(['auto', 'low', 'high'])),\n }),\n type: v.optional(v.literal('image_url'), 'image_url'),\n});\nexport type ChatCompletionContentPartImageType = v.InferOutput<\n typeof ChatCompletionContentPartImage\n>;\nexport const ChatCompletionContentPart = v.array(\n v.union([ChatCompletionContentPartStr, ChatCompletionContentPartImage]),\n);\nexport const SystemChatCompletionContent = v.array(\n ChatCompletionContentPartStr,\n);\nexport const UserChatCompletionContent = ChatCompletionContentPart;\nexport type UserChatCompletionContentType = v.InferOutput<\n typeof UserChatCompletionContent\n>;\nexport const AssistantChatCompletionContent = v.array(\n ChatCompletionContentPartStr,\n);\nexport const SystemChatMessage = v.object({\n role: v.optional(v.literal('system'), 'system'),\n content: SystemChatCompletionContent,\n});\nexport type SystemChatMessageType = v.InferOutput<typeof SystemChatMessage>;\nexport const UserChatMessage = v.object({\n role: v.optional(v.literal('user'), 'user'),\n content: UserChatCompletionContent,\n});\nexport type UserChatMessageType = v.InferOutput<typeof UserChatMessage>;\n\nexport const AssistantChatMessage = v.object({\n role: v.optional(v.literal('assistant'), 'assistant'),\n content: AssistantChatCompletionContent,\n thinkContent: v.optional(v.string()),\n});\n\nexport type AssistantChatMessageType = v.InferOutput<\n typeof AssistantChatMessage\n>;\n\nexport const ChatMessageItemDefine = v.union([\n SystemChatMessage,\n UserChatMessage,\n AssistantChatMessage,\n]);\nexport type ChatMessageItemType = v.InferOutput<typeof ChatMessageItemDefine>;\nexport const ChatMessageListDefine = v.array(ChatMessageItemDefine);\n\nexport type ChatMessageListOutputType = v.InferOutput<\n typeof ChatMessageListDefine\n>;\nexport type ChatMessageListInputType = v.InferOutput<\n typeof ChatMessageListDefine\n>;\n", "import {\n asControl,\n actions,\n setComponent,\n} from '@piying/view-angular-core';\nimport * as v from 'valibot';\nimport {\n asVirtualGroup,\n metadataPipe,\n omitIntersect,\n} from '@piying/valibot-visit';\nconst VendorList = [\n {\n value: 'openai',\n label: 'openai',\n options: {\n baseURL: '',\n modelList: [],\n description: '如果是openai兼容的厂商,需要设置baseURL',\n },\n },\n {\n value: '360',\n label: '360',\n options: { baseURL: 'https://ai.360.cn', modelList: [] },\n },\n {\n value: 'azure',\n label: 'azure',\n options: { baseURL: '', modelList: [] },\n },\n {\n value: 'moonshot',\n label: 'moonshot',\n options: { baseURL: 'https://api.moonshot.cn', modelList: [] },\n },\n {\n value: 'baichuan',\n label: 'baichuan',\n options: { baseURL: 'https://api.baichuan-ai.com', modelList: [] },\n },\n {\n value: 'minimax',\n label: 'minimax',\n options: { baseURL: 'https://api.minimax.chat', modelList: [] },\n },\n {\n value: 'mistralai',\n label: 'mistralai',\n options: { baseURL: 'https://api.mistral.ai', modelList: [] },\n },\n {\n value: 'groq',\n label: 'groq',\n options: { baseURL: 'https://api.groq.com/openai', modelList: [] },\n },\n {\n value: 'lingyiwanwu',\n label: 'lingyiwanwu',\n options: { baseURL: 'https://api.lingyiwanwu.com', modelList: [] },\n },\n {\n value: 'stepfun',\n label: 'stepfun',\n options: { baseURL: 'https://api.stepfun.com', modelList: [] },\n },\n {\n value: 'deepseek',\n label: 'deepseek',\n options: { baseURL: 'https://api.deepseek.com', modelList: [] },\n },\n {\n value: 'together.ai',\n label: 'together.ai',\n options: { baseURL: 'https://api.together.xyz', modelList: [] },\n },\n {\n value: 'volcengine',\n label: 'volcengine',\n options: {\n baseURL: 'https://ark.cn-beijing.volces.com/api/v3',\n modelList: [],\n },\n },\n {\n value: 'novita',\n label: 'novita',\n options: { baseURL: 'https://api.novita.ai/v3/openai', modelList: [] },\n },\n {\n value: 'siliconflow',\n label: 'siliconflow',\n options: { baseURL: 'https://api.siliconflow.cn', modelList: [] },\n },\n {\n value: 'tongyi',\n label: 'tongyi',\n options: {\n baseURL: 'https://dashscope.aliyuncs.com/compatible-mode/v1',\n modelList: [],\n },\n },\n {\n value: 'zhipu',\n label: 'zhipu',\n options: {\n baseURL: 'https://open.bigmodel.cn/api/paas/v4',\n modelList: [],\n },\n },\n {\n value: 'spark',\n label: 'spark',\n options: {\n baseURL: 'https://spark-api-open.xf-yun.com/v1',\n modelList: [],\n },\n },\n {\n value: 'hunyuan',\n label: 'hunyuan',\n options: {\n baseURL: 'https://api.hunyuan.cloud.tencent.com/v1',\n modelList: [],\n },\n },\n\n {\n value: 'gemini',\n label: 'gemini',\n options: {\n baseURL: '',\n modelList: [],\n description: '非openai兼容,手动适配,如果有问题欢迎报告',\n },\n },\n {\n value: 'claude',\n label: 'claude',\n options: {\n baseURL: '',\n modelList: [],\n description: '非openai兼容,手动适配,如果有问题欢迎报告',\n },\n },\n] as const;\nconst vendorOptionsDescribe = `## 通用参数\n- \\`extraOptions\\`字段用于覆盖默认字段\n\\`\\`\\`json\n{\"厂商名(与vendor字段相同)\":{ \"extraOptions\":{\"temperature\":0.1,\"topP\":0.8,\"maxTokens\":8192,\"baseURL\":\"http://127.0.0.1:11434/v1\",\"apiKey\":\" \"} }\n\\`\\`\\`\n`;\nconst InputWrapper = metadataPipe(actions.wrappers.set(['tooltip', 'form-field']));\n\nexport const ChatItemDefine = v.pipe(\n v.intersect([\n v.pipe(\n v.object({\n name: v.pipe(v.string(), v.title('配置名')),\n vendor: v.pipe(\n v.optional(\n v.picklist(VendorList.map((item) => item.value)),\n 'openai',\n ),\n v.description('大语言模型提供的厂商'),\n v.title('对话厂商'),\n v.metadata({\n enumOptions: VendorList.map((item) => ({\n label: item.label,\n description: [\n (item.options as any).description\n ? (item.options as any).description\n : '',\n item.options.baseURL ? `链接: ${item.options.baseURL}` : '',\n ]\n .filter(Boolean)\n .join('\\n'),\n })),\n }),\n actions.inputs.patch({\n options: VendorList,\n }),\n ),\n }),\n actions.class.component('flex *:flex-1 gap-2 items-center'),\n ),\n v.pipe(\n v.object({\n baseURL: v.pipe(\n v.optional(v.string(), 'http://127.0.0.1:11434/v1'),\n v.title('地址'),\n v.description('openai兼容接口'),\n ...InputWrapper,\n ),\n model: v.pipe(\n v.optional(v.string(), `qwen3:8b`),\n v.title('模型'),\n v.description(\n '## 模型名\\n### ollama模型推荐\\n- `qwen3:8b`\\n- `qwen3:14b`,`deepseek-r1:7b`,`deepseek-r1:14b`\\n### 图片对话模型\\n- `minicpm-v:8b`',\n ),\n ...InputWrapper,\n ),\n }),\n actions.class.component('flex *:flex-1 gap-2 items-center'),\n ),\n v.object({\n apiKey: v.pipe(\n v.optional(v.string()),\n v.description('本地部署默认可以不填'),\n ),\n }),\n v.pipe(\n v.object({\n max_tokens: v.pipe(v.optional(v.number(), 8192)),\n top_p: v.pipe(\n v.optional(v.number(), 0.8),\n v.minValue(0),\n v.maxValue(10),\n v.description(`核采样(nucleus sampling)是温度采样的另一种替代方法,模型会考虑累积概率质量达到 top_p 的 token。例如,当 top_p 设为 0.1 时,仅考虑累积概率前 10% 的 token。\n\n我们通常建议调整 top_p 或温度参数,但不要同时调整两者。`),\n ...InputWrapper,\n ),\n temperature: v.pipe(\n v.optional(v.pipe(v.number(), v.minValue(0), v.maxValue(2)), 0.1),\n v.description(\n '采样温度应设置在0到2之间。较高的值(如0.8)会使输出更随机,而较低的值(如0.2)则会使输出更集中且确定。我们通常建议仅调整此参数或top_p,而不同时调整两者。',\n ),\n ...InputWrapper,\n ),\n frequency_penalty: v.pipe(\n v.optional(v.pipe(v.number(), v.minValue(-2), v.maxValue(2))),\n v.description(\n '取值范围为-2.0至2.0。正值会根据当前文本中已有标记的频率对新标记进行惩罚,从而降低模型逐字重复相同内容的概率。',\n ),\n ...InputWrapper,\n ),\n presence_penalty: v.pipe(\n v.optional(v.pipe(v.number(), v.minValue(-2), v.maxValue(2))),\n v.description(\n '数值介于-2.0至2.0之间。正值会基于新标记是否已在当前文本中出现,对新标记施加惩罚,从而提升模型讨论新话题的可能性。',\n ),\n ...InputWrapper,\n ),\n seed: v.pipe(\n v.optional(v.pipe(v.number())),\n v.description(\n '若已指定,系统将尽力确保采样具有确定性,即使用相同种子和参数的重复请求将返回相同结果。确定性无法保证,请通过 system_fingerprint 响应参数监控后端变化。',\n ),\n ...InputWrapper,\n ),\n stop: v.pipe(\n v.optional(v.pipe(v.array(v.pipe(v.string())), v.maxLength(4))),\n v.description(\n '最多可指定4个停止序列,API将在生成到该序列时停止,返回的文本中不包含该停止序列。',\n ),\n asControl(),\n setComponent('chip-input-list'),\n actions.inputs.patch({\n addOnBlur: true,\n }),\n ...InputWrapper,\n ),\n // top_logprobs: v.pipe(\n // v.optional(v.pipe(v.number(), v.minValue(0), v.maxValue(20))),\n // v.description(\n // '一个介于0和20之间的整数,用于指定在每个标记位置返回的最可能的标记数量,每个标记均关联对应的对数概率。若使用此参数,则必须将logprobs设置为true。',\n // ),\n // ),\n\n // verbosity: v.pipe(\n // v.optional(v.picklist(['low', 'medium', 'high'])),\n // v.description(\n // `控制模型回复的详细程度。数值越低,回复越简洁;数值越高,回复越详细。当前支持的取值为低、中和高。`,\n // ),\n // ),\n // reasoning_effort: v.pipe(\n // v.optional(v.picklist(['minimal', 'low', 'medium', 'high'])),\n // v.description(\n // `控制模型回复的详细程度。数值越低,回复越简洁;数值越高,回复越详细。当前支持的取值为低、中和高。`,\n // ),\n // ),\n }),\n actions.class.component('grid gap-2'),\n ),\n ]),\n actions.class.component('grid gap-2'),\n asVirtualGroup(),\n);\n\nexport const VendorOptionsDefine = v.pipe(\n v.optional(\n v.record(\n v.string(),\n v.pipe(\n v.intersect([\n v.object({\n /** @internal */\n extraOptions: v.pipe(\n v.optional(omitIntersect(ChatItemDefine, ['name', 'vendor'])),\n v.description(`附加配置`),\n ),\n }),\n ]),\n actions.class.component('grid gap-2'),\n asVirtualGroup(),\n ),\n ),\n ),\n v.description(vendorOptionsDescribe),\n setComponent('rest-chip-group'),\n actions.inputs.patch({\n optionalkeyList: VendorList.map((item) => item.value),\n placeholder: '请设置额外配置',\n }),\n v.title('厂商额外配置'),\n);\nexport const ChatParamsItemDefine = v.pipe(\n v.intersect([\n ChatItemDefine,\n v.object({ vendorOptions: VendorOptionsDefine }),\n ]),\n asVirtualGroup(),\n actions.class.component('grid gap-2'),\n);\n\nexport const ChatParamsListDefine = v.pipe(\n v.array(ChatParamsItemDefine),\n setComponent('label-chip-array'),\n v.description('对话模型列表,目前用于切换使用'),\n actions.inputs.patch({\n displayKey: 'name',\n placeholder: '请添加配置',\n }),\n);\nexport type ChatModelOptions = v.InferOutput<typeof ChatParamsItemDefine>;\nexport type ChatModelOptionsInput = v.InferInput<typeof ChatParamsItemDefine>;\n\nexport const InputChatOptionsDefine = omitIntersect(ChatParamsItemDefine, [\n 'name',\n]);\nexport type CreateChatModelOptions = v.InferInput<\n typeof InputChatOptionsDefine\n>;\n"],
5
+ "mappings": "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",
6
6
  "names": ["v"]
7
7
  }
package/define/index.mjs CHANGED
@@ -44,9 +44,7 @@ var ChatMessageListDefine = v.array(ChatMessageItemDefine);
44
44
  // packages/openai/chat/options.define.ts
45
45
  import {
46
46
  asControl,
47
- componentClass,
48
- patchInputs,
49
- patchWrappers,
47
+ actions,
50
48
  setComponent
51
49
  } from "@piying/view-angular-core";
52
50
  import * as v2 from "valibot";
@@ -195,7 +193,7 @@ var vendorOptionsDescribe = `## 通用参数
195
193
  {"厂商名(与vendor字段相同)":{ "extraOptions":{"temperature":0.1,"topP":0.8,"maxTokens":8192,"baseURL":"http://127.0.0.1:11434/v1","apiKey":" "} }
196
194
  \`\`\`
197
195
  `;
198
- var InputWrapper = metadataPipe(patchWrappers(["tooltip", "form-field"]));
196
+ var InputWrapper = metadataPipe(actions.wrappers.set(["tooltip", "form-field"]));
199
197
  var ChatItemDefine = v2.pipe(
200
198
  v2.intersect([
201
199
  v2.pipe(
@@ -217,12 +215,12 @@ var ChatItemDefine = v2.pipe(
217
215
  ].filter(Boolean).join("\n")
218
216
  }))
219
217
  }),
220
- patchInputs({
218
+ actions.inputs.patch({
221
219
  options: VendorList
222
220
  })
223
221
  )
224
222
  }),
225
- componentClass("flex *:flex-1 gap-2 items-center")
223
+ actions.class.component("flex *:flex-1 gap-2 items-center")
226
224
  ),
227
225
  v2.pipe(
228
226
  v2.object({
@@ -241,7 +239,7 @@ var ChatItemDefine = v2.pipe(
241
239
  ...InputWrapper
242
240
  )
243
241
  }),
244
- componentClass("flex *:flex-1 gap-2 items-center")
242
+ actions.class.component("flex *:flex-1 gap-2 items-center")
245
243
  ),
246
244
  v2.object({
247
245
  apiKey: v2.pipe(
@@ -296,7 +294,7 @@ var ChatItemDefine = v2.pipe(
296
294
  ),
297
295
  asControl(),
298
296
  setComponent("chip-input-list"),
299
- patchInputs({
297
+ actions.inputs.patch({
300
298
  addOnBlur: true
301
299
  }),
302
300
  ...InputWrapper
@@ -320,10 +318,10 @@ var ChatItemDefine = v2.pipe(
320
318
  // ),
321
319
  // ),
322
320
  }),
323
- componentClass("grid gap-2")
321
+ actions.class.component("grid gap-2")
324
322
  )
325
323
  ]),
326
- componentClass("grid gap-2"),
324
+ actions.class.component("grid gap-2"),
327
325
  asVirtualGroup()
328
326
  );
329
327
  var VendorOptionsDefine = v2.pipe(
@@ -340,14 +338,14 @@ var VendorOptionsDefine = v2.pipe(
340
338
  )
341
339
  })
342
340
  ]),
343
- componentClass("grid gap-2"),
341
+ actions.class.component("grid gap-2"),
344
342
  asVirtualGroup()
345
343
  )
346
344
  )
347
345
  ),
348
346
  v2.description(vendorOptionsDescribe),
349
347
  setComponent("rest-chip-group"),
350
- patchInputs({
348
+ actions.inputs.patch({
351
349
  optionalkeyList: VendorList.map((item) => item.value),
352
350
  placeholder: "请设置额外配置"
353
351
  }),
@@ -359,13 +357,13 @@ var ChatParamsItemDefine = v2.pipe(
359
357
  v2.object({ vendorOptions: VendorOptionsDefine })
360
358
  ]),
361
359
  asVirtualGroup(),
362
- componentClass("grid gap-2")
360
+ actions.class.component("grid gap-2")
363
361
  );
364
362
  var ChatParamsListDefine = v2.pipe(
365
363
  v2.array(ChatParamsItemDefine),
366
364
  setComponent("label-chip-array"),
367
365
  v2.description("对话模型列表,目前用于切换使用"),
368
- patchInputs({
366
+ actions.inputs.patch({
369
367
  displayKey: "name",
370
368
  placeholder: "请添加配置"
371
369
  })
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/openai/chat/message.define.ts", "../../../packages/openai/chat/options.define.ts"],
4
- "sourcesContent": ["import * as v from 'valibot';\nexport const ChatCompletionContentPartStr = v.object({\n text: v.string(),\n type: v.optional(v.literal('text'), 'text'),\n});\nexport type ChatCompletionContentPartStrType = v.InferOutput<\n typeof ChatCompletionContentPartStr\n>;\n\nexport const ChatCompletionContentPartImage = v.object({\n image_url: v.object({\n url: v.string(),\n detail: v.optional(v.picklist(['auto', 'low', 'high'])),\n }),\n type: v.optional(v.literal('image_url'), 'image_url'),\n});\nexport type ChatCompletionContentPartImageType = v.InferOutput<\n typeof ChatCompletionContentPartImage\n>;\nexport const ChatCompletionContentPart = v.array(\n v.union([ChatCompletionContentPartStr, ChatCompletionContentPartImage]),\n);\nexport const SystemChatCompletionContent = v.array(\n ChatCompletionContentPartStr,\n);\nexport const UserChatCompletionContent = ChatCompletionContentPart;\nexport type UserChatCompletionContentType = v.InferOutput<\n typeof UserChatCompletionContent\n>;\nexport const AssistantChatCompletionContent = v.array(\n ChatCompletionContentPartStr,\n);\nexport const SystemChatMessage = v.object({\n role: v.optional(v.literal('system'), 'system'),\n content: SystemChatCompletionContent,\n});\nexport type SystemChatMessageType = v.InferOutput<typeof SystemChatMessage>;\nexport const UserChatMessage = v.object({\n role: v.optional(v.literal('user'), 'user'),\n content: UserChatCompletionContent,\n});\nexport type UserChatMessageType = v.InferOutput<typeof UserChatMessage>;\n\nexport const AssistantChatMessage = v.object({\n role: v.optional(v.literal('assistant'), 'assistant'),\n content: AssistantChatCompletionContent,\n thinkContent: v.optional(v.string()),\n});\n\nexport type AssistantChatMessageType = v.InferOutput<\n typeof AssistantChatMessage\n>;\n\nexport const ChatMessageItemDefine = v.union([\n SystemChatMessage,\n UserChatMessage,\n AssistantChatMessage,\n]);\nexport type ChatMessageItemType = v.InferOutput<typeof ChatMessageItemDefine>;\nexport const ChatMessageListDefine = v.array(ChatMessageItemDefine);\n\nexport type ChatMessageListOutputType = v.InferOutput<\n typeof ChatMessageListDefine\n>;\nexport type ChatMessageListInputType = v.InferOutput<\n typeof ChatMessageListDefine\n>;\n", "import {\n asControl,\n componentClass,\n patchInputs,\n patchWrappers,\n setComponent,\n} from '@piying/view-angular-core';\nimport * as v from 'valibot';\nimport {\n asVirtualGroup,\n metadataPipe,\n omitIntersect,\n} from '@piying/valibot-visit';\nconst VendorList = [\n {\n value: 'openai',\n label: 'openai',\n options: {\n baseURL: '',\n modelList: [],\n description: '如果是openai兼容的厂商,需要设置baseURL',\n },\n },\n {\n value: '360',\n label: '360',\n options: { baseURL: 'https://ai.360.cn', modelList: [] },\n },\n {\n value: 'azure',\n label: 'azure',\n options: { baseURL: '', modelList: [] },\n },\n {\n value: 'moonshot',\n label: 'moonshot',\n options: { baseURL: 'https://api.moonshot.cn', modelList: [] },\n },\n {\n value: 'baichuan',\n label: 'baichuan',\n options: { baseURL: 'https://api.baichuan-ai.com', modelList: [] },\n },\n {\n value: 'minimax',\n label: 'minimax',\n options: { baseURL: 'https://api.minimax.chat', modelList: [] },\n },\n {\n value: 'mistralai',\n label: 'mistralai',\n options: { baseURL: 'https://api.mistral.ai', modelList: [] },\n },\n {\n value: 'groq',\n label: 'groq',\n options: { baseURL: 'https://api.groq.com/openai', modelList: [] },\n },\n {\n value: 'lingyiwanwu',\n label: 'lingyiwanwu',\n options: { baseURL: 'https://api.lingyiwanwu.com', modelList: [] },\n },\n {\n value: 'stepfun',\n label: 'stepfun',\n options: { baseURL: 'https://api.stepfun.com', modelList: [] },\n },\n {\n value: 'deepseek',\n label: 'deepseek',\n options: { baseURL: 'https://api.deepseek.com', modelList: [] },\n },\n {\n value: 'together.ai',\n label: 'together.ai',\n options: { baseURL: 'https://api.together.xyz', modelList: [] },\n },\n {\n value: 'volcengine',\n label: 'volcengine',\n options: {\n baseURL: 'https://ark.cn-beijing.volces.com/api/v3',\n modelList: [],\n },\n },\n {\n value: 'novita',\n label: 'novita',\n options: { baseURL: 'https://api.novita.ai/v3/openai', modelList: [] },\n },\n {\n value: 'siliconflow',\n label: 'siliconflow',\n options: { baseURL: 'https://api.siliconflow.cn', modelList: [] },\n },\n {\n value: 'tongyi',\n label: 'tongyi',\n options: {\n baseURL: 'https://dashscope.aliyuncs.com/compatible-mode/v1',\n modelList: [],\n },\n },\n {\n value: 'zhipu',\n label: 'zhipu',\n options: {\n baseURL: 'https://open.bigmodel.cn/api/paas/v4',\n modelList: [],\n },\n },\n {\n value: 'spark',\n label: 'spark',\n options: {\n baseURL: 'https://spark-api-open.xf-yun.com/v1',\n modelList: [],\n },\n },\n {\n value: 'hunyuan',\n label: 'hunyuan',\n options: {\n baseURL: 'https://api.hunyuan.cloud.tencent.com/v1',\n modelList: [],\n },\n },\n\n {\n value: 'gemini',\n label: 'gemini',\n options: {\n baseURL: '',\n modelList: [],\n description: '非openai兼容,手动适配,如果有问题欢迎报告',\n },\n },\n {\n value: 'claude',\n label: 'claude',\n options: {\n baseURL: '',\n modelList: [],\n description: '非openai兼容,手动适配,如果有问题欢迎报告',\n },\n },\n] as const;\nconst vendorOptionsDescribe = `## 通用参数\n- \\`extraOptions\\`字段用于覆盖默认字段\n\\`\\`\\`json\n{\"厂商名(与vendor字段相同)\":{ \"extraOptions\":{\"temperature\":0.1,\"topP\":0.8,\"maxTokens\":8192,\"baseURL\":\"http://127.0.0.1:11434/v1\",\"apiKey\":\" \"} }\n\\`\\`\\`\n`;\nconst InputWrapper = metadataPipe(patchWrappers(['tooltip', 'form-field']));\n\nexport const ChatItemDefine = v.pipe(\n v.intersect([\n v.pipe(\n v.object({\n name: v.pipe(v.string(), v.title('配置名')),\n vendor: v.pipe(\n v.optional(\n v.picklist(VendorList.map((item) => item.value)),\n 'openai',\n ),\n v.description('大语言模型提供的厂商'),\n v.title('对话厂商'),\n v.metadata({\n enumOptions: VendorList.map((item) => ({\n label: item.label,\n description: [\n (item.options as any).description\n ? (item.options as any).description\n : '',\n item.options.baseURL ? `链接: ${item.options.baseURL}` : '',\n ]\n .filter(Boolean)\n .join('\\n'),\n })),\n }),\n patchInputs({\n options: VendorList,\n }),\n ),\n }),\n componentClass('flex *:flex-1 gap-2 items-center'),\n ),\n v.pipe(\n v.object({\n baseURL: v.pipe(\n v.optional(v.string(), 'http://127.0.0.1:11434/v1'),\n v.title('地址'),\n v.description('openai兼容接口'),\n ...InputWrapper,\n ),\n model: v.pipe(\n v.optional(v.string(), `qwen3:8b`),\n v.title('模型'),\n v.description(\n '## 模型名\\n### ollama模型推荐\\n- `qwen3:8b`\\n- `qwen3:14b`,`deepseek-r1:7b`,`deepseek-r1:14b`\\n### 图片对话模型\\n- `minicpm-v:8b`',\n ),\n ...InputWrapper,\n ),\n }),\n componentClass('flex *:flex-1 gap-2 items-center'),\n ),\n v.object({\n apiKey: v.pipe(\n v.optional(v.string()),\n v.description('本地部署默认可以不填'),\n ),\n }),\n v.pipe(\n v.object({\n max_tokens: v.pipe(v.optional(v.number(), 8192)),\n top_p: v.pipe(\n v.optional(v.number(), 0.8),\n v.minValue(0),\n v.maxValue(10),\n v.description(`核采样(nucleus sampling)是温度采样的另一种替代方法,模型会考虑累积概率质量达到 top_p 的 token。例如,当 top_p 设为 0.1 时,仅考虑累积概率前 10% 的 token。\n\n我们通常建议调整 top_p 或温度参数,但不要同时调整两者。`),\n ...InputWrapper,\n ),\n temperature: v.pipe(\n v.optional(v.pipe(v.number(), v.minValue(0), v.maxValue(2)), 0.1),\n v.description(\n '采样温度应设置在0到2之间。较高的值(如0.8)会使输出更随机,而较低的值(如0.2)则会使输出更集中且确定。我们通常建议仅调整此参数或top_p,而不同时调整两者。',\n ),\n ...InputWrapper,\n ),\n frequency_penalty: v.pipe(\n v.optional(v.pipe(v.number(), v.minValue(-2), v.maxValue(2))),\n v.description(\n '取值范围为-2.0至2.0。正值会根据当前文本中已有标记的频率对新标记进行惩罚,从而降低模型逐字重复相同内容的概率。',\n ),\n ...InputWrapper,\n ),\n presence_penalty: v.pipe(\n v.optional(v.pipe(v.number(), v.minValue(-2), v.maxValue(2))),\n v.description(\n '数值介于-2.0至2.0之间。正值会基于新标记是否已在当前文本中出现,对新标记施加惩罚,从而提升模型讨论新话题的可能性。',\n ),\n ...InputWrapper,\n ),\n seed: v.pipe(\n v.optional(v.pipe(v.number())),\n v.description(\n '若已指定,系统将尽力确保采样具有确定性,即使用相同种子和参数的重复请求将返回相同结果。确定性无法保证,请通过 system_fingerprint 响应参数监控后端变化。',\n ),\n ...InputWrapper,\n ),\n stop: v.pipe(\n v.optional(v.pipe(v.array(v.pipe(v.string())), v.maxLength(4))),\n v.description(\n '最多可指定4个停止序列,API将在生成到该序列时停止,返回的文本中不包含该停止序列。',\n ),\n asControl(),\n setComponent('chip-input-list'),\n patchInputs({\n addOnBlur: true,\n }),\n ...InputWrapper,\n ),\n // top_logprobs: v.pipe(\n // v.optional(v.pipe(v.number(), v.minValue(0), v.maxValue(20))),\n // v.description(\n // '一个介于0和20之间的整数,用于指定在每个标记位置返回的最可能的标记数量,每个标记均关联对应的对数概率。若使用此参数,则必须将logprobs设置为true。',\n // ),\n // ),\n\n // verbosity: v.pipe(\n // v.optional(v.picklist(['low', 'medium', 'high'])),\n // v.description(\n // `控制模型回复的详细程度。数值越低,回复越简洁;数值越高,回复越详细。当前支持的取值为低、中和高。`,\n // ),\n // ),\n // reasoning_effort: v.pipe(\n // v.optional(v.picklist(['minimal', 'low', 'medium', 'high'])),\n // v.description(\n // `控制模型回复的详细程度。数值越低,回复越简洁;数值越高,回复越详细。当前支持的取值为低、中和高。`,\n // ),\n // ),\n }),\n componentClass('grid gap-2'),\n ),\n ]),\n componentClass('grid gap-2'),\n asVirtualGroup(),\n);\n\nexport const VendorOptionsDefine = v.pipe(\n v.optional(\n v.record(\n v.string(),\n v.pipe(\n v.intersect([\n v.object({\n /** @internal */\n extraOptions: v.pipe(\n v.optional(omitIntersect(ChatItemDefine, ['name', 'vendor'])),\n v.description(`附加配置`),\n ),\n }),\n ]),\n componentClass('grid gap-2'),\n asVirtualGroup(),\n ),\n ),\n ),\n v.description(vendorOptionsDescribe),\n setComponent('rest-chip-group'),\n patchInputs({\n optionalkeyList: VendorList.map((item) => item.value),\n placeholder: '请设置额外配置',\n }),\n v.title('厂商额外配置'),\n);\nexport const ChatParamsItemDefine = v.pipe(\n v.intersect([\n ChatItemDefine,\n v.object({ vendorOptions: VendorOptionsDefine }),\n ]),\n asVirtualGroup(),\n componentClass('grid gap-2'),\n);\n\nexport const ChatParamsListDefine = v.pipe(\n v.array(ChatParamsItemDefine),\n setComponent('label-chip-array'),\n v.description('对话模型列表,目前用于切换使用'),\n patchInputs({\n displayKey: 'name',\n placeholder: '请添加配置',\n }),\n);\nexport type ChatModelOptions = v.InferOutput<typeof ChatParamsItemDefine>;\nexport type ChatModelOptionsInput = v.InferInput<typeof ChatParamsItemDefine>;\n\nexport const InputChatOptionsDefine = omitIntersect(ChatParamsItemDefine, [\n 'name',\n]);\nexport type CreateChatModelOptions = v.InferInput<\n typeof InputChatOptionsDefine\n>;\n"],
5
- "mappings": ";AAAA,YAAY,OAAO;AACZ,IAAM,+BAAiC,SAAO;AAAA,EACnD,MAAQ,SAAO;AAAA,EACf,MAAQ,WAAW,UAAQ,MAAM,GAAG,MAAM;AAC5C,CAAC;AAKM,IAAM,iCAAmC,SAAO;AAAA,EACrD,WAAa,SAAO;AAAA,IAClB,KAAO,SAAO;AAAA,IACd,QAAU,WAAW,WAAS,CAAC,QAAQ,OAAO,MAAM,CAAC,CAAC;AAAA,EACxD,CAAC;AAAA,EACD,MAAQ,WAAW,UAAQ,WAAW,GAAG,WAAW;AACtD,CAAC;AAIM,IAAM,4BAA8B;AAAA,EACvC,QAAM,CAAC,8BAA8B,8BAA8B,CAAC;AACxE;AACO,IAAM,8BAAgC;AAAA,EAC3C;AACF;AACO,IAAM,4BAA4B;AAIlC,IAAM,iCAAmC;AAAA,EAC9C;AACF;AACO,IAAM,oBAAsB,SAAO;AAAA,EACxC,MAAQ,WAAW,UAAQ,QAAQ,GAAG,QAAQ;AAAA,EAC9C,SAAS;AACX,CAAC;AAEM,IAAM,kBAAoB,SAAO;AAAA,EACtC,MAAQ,WAAW,UAAQ,MAAM,GAAG,MAAM;AAAA,EAC1C,SAAS;AACX,CAAC;AAGM,IAAM,uBAAyB,SAAO;AAAA,EAC3C,MAAQ,WAAW,UAAQ,WAAW,GAAG,WAAW;AAAA,EACpD,SAAS;AAAA,EACT,cAAgB,WAAW,SAAO,CAAC;AACrC,CAAC;AAMM,IAAM,wBAA0B,QAAM;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,wBAA0B,QAAM,qBAAqB;;;AC3DlE;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,YAAYA,QAAO;AACnB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,IAAM,aAAa;AAAA,EACjB;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS;AAAA,MACP,SAAS;AAAA,MACT,WAAW,CAAC;AAAA,MACZ,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,EAAE,SAAS,qBAAqB,WAAW,CAAC,EAAE;AAAA,EACzD;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,EAAE,SAAS,IAAI,WAAW,CAAC,EAAE;AAAA,EACxC;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,EAAE,SAAS,2BAA2B,WAAW,CAAC,EAAE;AAAA,EAC/D;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,EAAE,SAAS,+BAA+B,WAAW,CAAC,EAAE;AAAA,EACnE;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,EAAE,SAAS,4BAA4B,WAAW,CAAC,EAAE;AAAA,EAChE;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,EAAE,SAAS,0BAA0B,WAAW,CAAC,EAAE;AAAA,EAC9D;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,EAAE,SAAS,+BAA+B,WAAW,CAAC,EAAE;AAAA,EACnE;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,EAAE,SAAS,+BAA+B,WAAW,CAAC,EAAE;AAAA,EACnE;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,EAAE,SAAS,2BAA2B,WAAW,CAAC,EAAE;AAAA,EAC/D;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,EAAE,SAAS,4BAA4B,WAAW,CAAC,EAAE;AAAA,EAChE;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,EAAE,SAAS,4BAA4B,WAAW,CAAC,EAAE;AAAA,EAChE;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS;AAAA,MACP,SAAS;AAAA,MACT,WAAW,CAAC;AAAA,IACd;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,EAAE,SAAS,mCAAmC,WAAW,CAAC,EAAE;AAAA,EACvE;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS,EAAE,SAAS,8BAA8B,WAAW,CAAC,EAAE;AAAA,EAClE;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS;AAAA,MACP,SAAS;AAAA,MACT,WAAW,CAAC;AAAA,IACd;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS;AAAA,MACP,SAAS;AAAA,MACT,WAAW,CAAC;AAAA,IACd;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS;AAAA,MACP,SAAS;AAAA,MACT,WAAW,CAAC;AAAA,IACd;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS;AAAA,MACP,SAAS;AAAA,MACT,WAAW,CAAC;AAAA,IACd;AAAA,EACF;AAAA,EAEA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS;AAAA,MACP,SAAS;AAAA,MACT,WAAW,CAAC;AAAA,MACZ,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS;AAAA,MACP,SAAS;AAAA,MACT,WAAW,CAAC;AAAA,MACZ,aAAa;AAAA,IACf;AAAA,EACF;AACF;AACA,IAAM,wBAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAM9B,IAAM,eAAe,aAAa,cAAc,CAAC,WAAW,YAAY,CAAC,CAAC;AAEnE,IAAM,iBAAmB;AAAA,EAC5B,aAAU;AAAA,IACR;AAAA,MACE,UAAO;AAAA,QACP,MAAQ,QAAO,UAAO,GAAK,SAAM,KAAK,CAAC;AAAA,QACvC,QAAU;AAAA,UACN;AAAA,YACE,YAAS,WAAW,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC;AAAA,YAC/C;AAAA,UACF;AAAA,UACE,eAAY,YAAY;AAAA,UACxB,SAAM,MAAM;AAAA,UACZ,YAAS;AAAA,YACT,aAAa,WAAW,IAAI,CAAC,UAAU;AAAA,cACrC,OAAO,KAAK;AAAA,cACZ,aAAa;AAAA,gBACV,KAAK,QAAgB,cACjB,KAAK,QAAgB,cACtB;AAAA,gBACJ,KAAK,QAAQ,UAAU,OAAO,KAAK,QAAQ,OAAO,KAAK;AAAA,cACzD,EACG,OAAO,OAAO,EACd,KAAK,IAAI;AAAA,YACd,EAAE;AAAA,UACJ,CAAC;AAAA,UACD,YAAY;AAAA,YACV,SAAS;AAAA,UACX,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,MACD,eAAe,kCAAkC;AAAA,IACnD;AAAA,IACE;AAAA,MACE,UAAO;AAAA,QACP,SAAW;AAAA,UACP,YAAW,UAAO,GAAG,2BAA2B;AAAA,UAChD,SAAM,IAAI;AAAA,UACV,eAAY,YAAY;AAAA,UAC1B,GAAG;AAAA,QACL;AAAA,QACA,OAAS;AAAA,UACL,YAAW,UAAO,GAAG,UAAU;AAAA,UAC/B,SAAM,IAAI;AAAA,UACV;AAAA,YACA;AAAA,UACF;AAAA,UACA,GAAG;AAAA,QACL;AAAA,MACF,CAAC;AAAA,MACD,eAAe,kCAAkC;AAAA,IACnD;AAAA,IACE,UAAO;AAAA,MACP,QAAU;AAAA,QACN,YAAW,UAAO,CAAC;AAAA,QACnB,eAAY,YAAY;AAAA,MAC5B;AAAA,IACF,CAAC;AAAA,IACC;AAAA,MACE,UAAO;AAAA,QACP,YAAc,QAAO,YAAW,UAAO,GAAG,IAAI,CAAC;AAAA,QAC/C,OAAS;AAAA,UACL,YAAW,UAAO,GAAG,GAAG;AAAA,UACxB,YAAS,CAAC;AAAA,UACV,YAAS,EAAE;AAAA,UACX,eAAY;AAAA;AAAA,gCAEQ;AAAA,UACtB,GAAG;AAAA,QACL;AAAA,QACA,aAAe;AAAA,UACX,YAAW,QAAO,UAAO,GAAK,YAAS,CAAC,GAAK,YAAS,CAAC,CAAC,GAAG,GAAG;AAAA,UAC9D;AAAA,YACA;AAAA,UACF;AAAA,UACA,GAAG;AAAA,QACL;AAAA,QACA,mBAAqB;AAAA,UACjB,YAAW,QAAO,UAAO,GAAK,YAAS,EAAE,GAAK,YAAS,CAAC,CAAC,CAAC;AAAA,UAC1D;AAAA,YACA;AAAA,UACF;AAAA,UACA,GAAG;AAAA,QACL;AAAA,QACA,kBAAoB;AAAA,UAChB,YAAW,QAAO,UAAO,GAAK,YAAS,EAAE,GAAK,YAAS,CAAC,CAAC,CAAC;AAAA,UAC1D;AAAA,YACA;AAAA,UACF;AAAA,UACA,GAAG;AAAA,QACL;AAAA,QACA,MAAQ;AAAA,UACJ,YAAW,QAAO,UAAO,CAAC,CAAC;AAAA,UAC3B;AAAA,YACA;AAAA,UACF;AAAA,UACA,GAAG;AAAA,QACL;AAAA,QACA,MAAQ;AAAA,UACJ,YAAW,QAAO,SAAQ,QAAO,UAAO,CAAC,CAAC,GAAK,aAAU,CAAC,CAAC,CAAC;AAAA,UAC5D;AAAA,YACA;AAAA,UACF;AAAA,UACA,UAAU;AAAA,UACV,aAAa,iBAAiB;AAAA,UAC9B,YAAY;AAAA,YACV,WAAW;AAAA,UACb,CAAC;AAAA,UACD,GAAG;AAAA,QACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAoBF,CAAC;AAAA,MACD,eAAe,YAAY;AAAA,IAC7B;AAAA,EACF,CAAC;AAAA,EACD,eAAe,YAAY;AAAA,EAC3B,eAAe;AACjB;AAEO,IAAM,sBAAwB;AAAA,EACjC;AAAA,IACE;AAAA,MACE,UAAO;AAAA,MACP;AAAA,QACE,aAAU;AAAA,UACR,UAAO;AAAA;AAAA,YAEP,cAAgB;AAAA,cACZ,YAAS,cAAc,gBAAgB,CAAC,QAAQ,QAAQ,CAAC,CAAC;AAAA,cAC1D,eAAY,MAAM;AAAA,YACtB;AAAA,UACF,CAAC;AAAA,QACH,CAAC;AAAA,QACD,eAAe,YAAY;AAAA,QAC3B,eAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAAA,EACE,eAAY,qBAAqB;AAAA,EACnC,aAAa,iBAAiB;AAAA,EAC9B,YAAY;AAAA,IACV,iBAAiB,WAAW,IAAI,CAAC,SAAS,KAAK,KAAK;AAAA,IACpD,aAAa;AAAA,EACf,CAAC;AAAA,EACC,SAAM,QAAQ;AAClB;AACO,IAAM,uBAAyB;AAAA,EAClC,aAAU;AAAA,IACV;AAAA,IACE,UAAO,EAAE,eAAe,oBAAoB,CAAC;AAAA,EACjD,CAAC;AAAA,EACD,eAAe;AAAA,EACf,eAAe,YAAY;AAC7B;AAEO,IAAM,uBAAyB;AAAA,EAClC,SAAM,oBAAoB;AAAA,EAC5B,aAAa,kBAAkB;AAAA,EAC7B,eAAY,iBAAiB;AAAA,EAC/B,YAAY;AAAA,IACV,YAAY;AAAA,IACZ,aAAa;AAAA,EACf,CAAC;AACH;AAIO,IAAM,yBAAyB,cAAc,sBAAsB;AAAA,EACxE;AACF,CAAC;",
4
+ "sourcesContent": ["import * as v from 'valibot';\nexport const ChatCompletionContentPartStr = v.object({\n text: v.string(),\n type: v.optional(v.literal('text'), 'text'),\n});\nexport type ChatCompletionContentPartStrType = v.InferOutput<\n typeof ChatCompletionContentPartStr\n>;\n\nexport const ChatCompletionContentPartImage = v.object({\n image_url: v.object({\n url: v.string(),\n detail: v.optional(v.picklist(['auto', 'low', 'high'])),\n }),\n type: v.optional(v.literal('image_url'), 'image_url'),\n});\nexport type ChatCompletionContentPartImageType = v.InferOutput<\n typeof ChatCompletionContentPartImage\n>;\nexport const ChatCompletionContentPart = v.array(\n v.union([ChatCompletionContentPartStr, ChatCompletionContentPartImage]),\n);\nexport const SystemChatCompletionContent = v.array(\n ChatCompletionContentPartStr,\n);\nexport const UserChatCompletionContent = ChatCompletionContentPart;\nexport type UserChatCompletionContentType = v.InferOutput<\n typeof UserChatCompletionContent\n>;\nexport const AssistantChatCompletionContent = v.array(\n ChatCompletionContentPartStr,\n);\nexport const SystemChatMessage = v.object({\n role: v.optional(v.literal('system'), 'system'),\n content: SystemChatCompletionContent,\n});\nexport type SystemChatMessageType = v.InferOutput<typeof SystemChatMessage>;\nexport const UserChatMessage = v.object({\n role: v.optional(v.literal('user'), 'user'),\n content: UserChatCompletionContent,\n});\nexport type UserChatMessageType = v.InferOutput<typeof UserChatMessage>;\n\nexport const AssistantChatMessage = v.object({\n role: v.optional(v.literal('assistant'), 'assistant'),\n content: AssistantChatCompletionContent,\n thinkContent: v.optional(v.string()),\n});\n\nexport type AssistantChatMessageType = v.InferOutput<\n typeof AssistantChatMessage\n>;\n\nexport const ChatMessageItemDefine = v.union([\n SystemChatMessage,\n UserChatMessage,\n AssistantChatMessage,\n]);\nexport type ChatMessageItemType = v.InferOutput<typeof ChatMessageItemDefine>;\nexport const ChatMessageListDefine = v.array(ChatMessageItemDefine);\n\nexport type ChatMessageListOutputType = v.InferOutput<\n typeof ChatMessageListDefine\n>;\nexport type ChatMessageListInputType = v.InferOutput<\n typeof ChatMessageListDefine\n>;\n", "import {\n asControl,\n actions,\n setComponent,\n} from '@piying/view-angular-core';\nimport * as v from 'valibot';\nimport {\n asVirtualGroup,\n metadataPipe,\n omitIntersect,\n} from '@piying/valibot-visit';\nconst VendorList = [\n {\n value: 'openai',\n label: 'openai',\n options: {\n baseURL: '',\n modelList: [],\n description: '如果是openai兼容的厂商,需要设置baseURL',\n },\n },\n {\n value: '360',\n label: '360',\n options: { baseURL: 'https://ai.360.cn', modelList: [] },\n },\n {\n value: 'azure',\n label: 'azure',\n options: { baseURL: '', modelList: [] },\n },\n {\n value: 'moonshot',\n label: 'moonshot',\n options: { baseURL: 'https://api.moonshot.cn', modelList: [] },\n },\n {\n value: 'baichuan',\n label: 'baichuan',\n options: { baseURL: 'https://api.baichuan-ai.com', modelList: [] },\n },\n {\n value: 'minimax',\n label: 'minimax',\n options: { baseURL: 'https://api.minimax.chat', modelList: [] },\n },\n {\n value: 'mistralai',\n label: 'mistralai',\n options: { baseURL: 'https://api.mistral.ai', modelList: [] },\n },\n {\n value: 'groq',\n label: 'groq',\n options: { baseURL: 'https://api.groq.com/openai', modelList: [] },\n },\n {\n value: 'lingyiwanwu',\n label: 'lingyiwanwu',\n options: { baseURL: 'https://api.lingyiwanwu.com', modelList: [] },\n },\n {\n value: 'stepfun',\n label: 'stepfun',\n options: { baseURL: 'https://api.stepfun.com', modelList: [] },\n },\n {\n value: 'deepseek',\n label: 'deepseek',\n options: { baseURL: 'https://api.deepseek.com', modelList: [] },\n },\n {\n value: 'together.ai',\n label: 'together.ai',\n options: { baseURL: 'https://api.together.xyz', modelList: [] },\n },\n {\n value: 'volcengine',\n label: 'volcengine',\n options: {\n baseURL: 'https://ark.cn-beijing.volces.com/api/v3',\n modelList: [],\n },\n },\n {\n value: 'novita',\n label: 'novita',\n options: { baseURL: 'https://api.novita.ai/v3/openai', modelList: [] },\n },\n {\n value: 'siliconflow',\n label: 'siliconflow',\n options: { baseURL: 'https://api.siliconflow.cn', modelList: [] },\n },\n {\n value: 'tongyi',\n label: 'tongyi',\n options: {\n baseURL: 'https://dashscope.aliyuncs.com/compatible-mode/v1',\n modelList: [],\n },\n },\n {\n value: 'zhipu',\n label: 'zhipu',\n options: {\n baseURL: 'https://open.bigmodel.cn/api/paas/v4',\n modelList: [],\n },\n },\n {\n value: 'spark',\n label: 'spark',\n options: {\n baseURL: 'https://spark-api-open.xf-yun.com/v1',\n modelList: [],\n },\n },\n {\n value: 'hunyuan',\n label: 'hunyuan',\n options: {\n baseURL: 'https://api.hunyuan.cloud.tencent.com/v1',\n modelList: [],\n },\n },\n\n {\n value: 'gemini',\n label: 'gemini',\n options: {\n baseURL: '',\n modelList: [],\n description: '非openai兼容,手动适配,如果有问题欢迎报告',\n },\n },\n {\n value: 'claude',\n label: 'claude',\n options: {\n baseURL: '',\n modelList: [],\n description: '非openai兼容,手动适配,如果有问题欢迎报告',\n },\n },\n] as const;\nconst vendorOptionsDescribe = `## 通用参数\n- \\`extraOptions\\`字段用于覆盖默认字段\n\\`\\`\\`json\n{\"厂商名(与vendor字段相同)\":{ \"extraOptions\":{\"temperature\":0.1,\"topP\":0.8,\"maxTokens\":8192,\"baseURL\":\"http://127.0.0.1:11434/v1\",\"apiKey\":\" \"} }\n\\`\\`\\`\n`;\nconst InputWrapper = metadataPipe(actions.wrappers.set(['tooltip', 'form-field']));\n\nexport const ChatItemDefine = v.pipe(\n v.intersect([\n v.pipe(\n v.object({\n name: v.pipe(v.string(), v.title('配置名')),\n vendor: v.pipe(\n v.optional(\n v.picklist(VendorList.map((item) => item.value)),\n 'openai',\n ),\n v.description('大语言模型提供的厂商'),\n v.title('对话厂商'),\n v.metadata({\n enumOptions: VendorList.map((item) => ({\n label: item.label,\n description: [\n (item.options as any).description\n ? (item.options as any).description\n : '',\n item.options.baseURL ? `链接: ${item.options.baseURL}` : '',\n ]\n .filter(Boolean)\n .join('\\n'),\n })),\n }),\n actions.inputs.patch({\n options: VendorList,\n }),\n ),\n }),\n actions.class.component('flex *:flex-1 gap-2 items-center'),\n ),\n v.pipe(\n v.object({\n baseURL: v.pipe(\n v.optional(v.string(), 'http://127.0.0.1:11434/v1'),\n v.title('地址'),\n v.description('openai兼容接口'),\n ...InputWrapper,\n ),\n model: v.pipe(\n v.optional(v.string(), `qwen3:8b`),\n v.title('模型'),\n v.description(\n '## 模型名\\n### ollama模型推荐\\n- `qwen3:8b`\\n- `qwen3:14b`,`deepseek-r1:7b`,`deepseek-r1:14b`\\n### 图片对话模型\\n- `minicpm-v:8b`',\n ),\n ...InputWrapper,\n ),\n }),\n actions.class.component('flex *:flex-1 gap-2 items-center'),\n ),\n v.object({\n apiKey: v.pipe(\n v.optional(v.string()),\n v.description('本地部署默认可以不填'),\n ),\n }),\n v.pipe(\n v.object({\n max_tokens: v.pipe(v.optional(v.number(), 8192)),\n top_p: v.pipe(\n v.optional(v.number(), 0.8),\n v.minValue(0),\n v.maxValue(10),\n v.description(`核采样(nucleus sampling)是温度采样的另一种替代方法,模型会考虑累积概率质量达到 top_p 的 token。例如,当 top_p 设为 0.1 时,仅考虑累积概率前 10% 的 token。\n\n我们通常建议调整 top_p 或温度参数,但不要同时调整两者。`),\n ...InputWrapper,\n ),\n temperature: v.pipe(\n v.optional(v.pipe(v.number(), v.minValue(0), v.maxValue(2)), 0.1),\n v.description(\n '采样温度应设置在0到2之间。较高的值(如0.8)会使输出更随机,而较低的值(如0.2)则会使输出更集中且确定。我们通常建议仅调整此参数或top_p,而不同时调整两者。',\n ),\n ...InputWrapper,\n ),\n frequency_penalty: v.pipe(\n v.optional(v.pipe(v.number(), v.minValue(-2), v.maxValue(2))),\n v.description(\n '取值范围为-2.0至2.0。正值会根据当前文本中已有标记的频率对新标记进行惩罚,从而降低模型逐字重复相同内容的概率。',\n ),\n ...InputWrapper,\n ),\n presence_penalty: v.pipe(\n v.optional(v.pipe(v.number(), v.minValue(-2), v.maxValue(2))),\n v.description(\n '数值介于-2.0至2.0之间。正值会基于新标记是否已在当前文本中出现,对新标记施加惩罚,从而提升模型讨论新话题的可能性。',\n ),\n ...InputWrapper,\n ),\n seed: v.pipe(\n v.optional(v.pipe(v.number())),\n v.description(\n '若已指定,系统将尽力确保采样具有确定性,即使用相同种子和参数的重复请求将返回相同结果。确定性无法保证,请通过 system_fingerprint 响应参数监控后端变化。',\n ),\n ...InputWrapper,\n ),\n stop: v.pipe(\n v.optional(v.pipe(v.array(v.pipe(v.string())), v.maxLength(4))),\n v.description(\n '最多可指定4个停止序列,API将在生成到该序列时停止,返回的文本中不包含该停止序列。',\n ),\n asControl(),\n setComponent('chip-input-list'),\n actions.inputs.patch({\n addOnBlur: true,\n }),\n ...InputWrapper,\n ),\n // top_logprobs: v.pipe(\n // v.optional(v.pipe(v.number(), v.minValue(0), v.maxValue(20))),\n // v.description(\n // '一个介于0和20之间的整数,用于指定在每个标记位置返回的最可能的标记数量,每个标记均关联对应的对数概率。若使用此参数,则必须将logprobs设置为true。',\n // ),\n // ),\n\n // verbosity: v.pipe(\n // v.optional(v.picklist(['low', 'medium', 'high'])),\n // v.description(\n // `控制模型回复的详细程度。数值越低,回复越简洁;数值越高,回复越详细。当前支持的取值为低、中和高。`,\n // ),\n // ),\n // reasoning_effort: v.pipe(\n // v.optional(v.picklist(['minimal', 'low', 'medium', 'high'])),\n // v.description(\n // `控制模型回复的详细程度。数值越低,回复越简洁;数值越高,回复越详细。当前支持的取值为低、中和高。`,\n // ),\n // ),\n }),\n actions.class.component('grid gap-2'),\n ),\n ]),\n actions.class.component('grid gap-2'),\n asVirtualGroup(),\n);\n\nexport const VendorOptionsDefine = v.pipe(\n v.optional(\n v.record(\n v.string(),\n v.pipe(\n v.intersect([\n v.object({\n /** @internal */\n extraOptions: v.pipe(\n v.optional(omitIntersect(ChatItemDefine, ['name', 'vendor'])),\n v.description(`附加配置`),\n ),\n }),\n ]),\n actions.class.component('grid gap-2'),\n asVirtualGroup(),\n ),\n ),\n ),\n v.description(vendorOptionsDescribe),\n setComponent('rest-chip-group'),\n actions.inputs.patch({\n optionalkeyList: VendorList.map((item) => item.value),\n placeholder: '请设置额外配置',\n }),\n v.title('厂商额外配置'),\n);\nexport const ChatParamsItemDefine = v.pipe(\n v.intersect([\n ChatItemDefine,\n v.object({ vendorOptions: VendorOptionsDefine }),\n ]),\n asVirtualGroup(),\n actions.class.component('grid gap-2'),\n);\n\nexport const ChatParamsListDefine = v.pipe(\n v.array(ChatParamsItemDefine),\n setComponent('label-chip-array'),\n v.description('对话模型列表,目前用于切换使用'),\n actions.inputs.patch({\n displayKey: 'name',\n placeholder: '请添加配置',\n }),\n);\nexport type ChatModelOptions = v.InferOutput<typeof ChatParamsItemDefine>;\nexport type ChatModelOptionsInput = v.InferInput<typeof ChatParamsItemDefine>;\n\nexport const InputChatOptionsDefine = omitIntersect(ChatParamsItemDefine, [\n 'name',\n]);\nexport type CreateChatModelOptions = v.InferInput<\n typeof InputChatOptionsDefine\n>;\n"],
5
+ "mappings": "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",
6
6
  "names": ["v"]
7
7
  }