Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
bit-pm
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
燕伟桐
bit-pm
Commits
d1027622
Unverified
提交
d1027622
authored
5月 13, 2025
作者:
Will Chen
提交者:
GitHub
5月 13, 2025
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Loosen provider type to a string (#144)
上级
f628c81f
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
6 行增加
和
21 行删除
+6
-21
ModelPicker.tsx
src/components/ModelPicker.tsx
+2
-2
language_model_helpers.ts
src/ipc/shared/language_model_helpers.ts
+3
-9
schemas.ts
src/lib/schemas.ts
+1
-10
没有找到文件。
src/components/ModelPicker.tsx
浏览文件 @
d1027622
import
type
{
LargeLanguageModel
,
ModelProvider
}
from
"@/lib/schemas"
;
import
type
{
LargeLanguageModel
}
from
"@/lib/schemas"
;
import
{
Button
}
from
"@/components/ui/button"
;
import
{
Tooltip
,
...
...
@@ -216,7 +216,7 @@ export function ModelPicker({
onClick=
{
()
=>
{
onModelSelect
({
name
:
model
.
apiName
,
provider
:
providerId
as
ModelProvider
,
provider
:
providerId
,
});
setOpen
(
false
);
}
}
...
...
src/ipc/shared/language_model_helpers.ts
浏览文件 @
d1027622
...
...
@@ -5,7 +5,6 @@ import {
}
from
"@/db/schema"
;
import
type
{
LanguageModelProvider
,
LanguageModel
}
from
"@/ipc/ipc_types"
;
import
{
eq
}
from
"drizzle-orm"
;
import
{
ModelProvider
}
from
"@/lib/schemas"
;
export
interface
ModelOption
{
name
:
string
;
...
...
@@ -16,12 +15,7 @@ export interface ModelOption {
contextWindow
?:
number
;
}
export
type
RegularModelProvider
=
Exclude
<
ModelProvider
,
"ollama"
|
"lmstudio"
>
;
export
const
MODEL_OPTIONS
:
Record
<
RegularModelProvider
,
ModelOption
[]
>
=
{
export
const
MODEL_OPTIONS
:
Record
<
string
,
ModelOption
[]
>
=
{
openai
:
[
// https://platform.openai.com/docs/models/gpt-4.1
{
...
...
@@ -109,7 +103,7 @@ export const PROVIDER_TO_ENV_VAR: Record<string, string> = {
};
export
const
PROVIDERS
:
Record
<
RegularModelProvider
,
string
,
{
displayName
:
string
;
hasFreeTier
?:
boolean
;
...
...
@@ -286,7 +280,7 @@ export async function getLanguageModels({
let
hardcodedModels
:
LanguageModel
[]
=
[];
if
(
provider
.
type
===
"cloud"
)
{
if
(
providerId
in
MODEL_OPTIONS
)
{
const
models
=
MODEL_OPTIONS
[
providerId
as
RegularModelProvider
]
||
[];
const
models
=
MODEL_OPTIONS
[
providerId
]
||
[];
hardcodedModels
=
models
.
map
((
model
)
=>
({
...
model
,
apiName
:
model
.
name
,
...
...
src/lib/schemas.ts
浏览文件 @
d1027622
...
...
@@ -35,26 +35,17 @@ const providers = [
"ollama"
,
"lmstudio"
,
]
as
const
;
/**
* Zod schema for model provider
*/
export
const
ModelProviderSchema
=
z
.
enum
(
providers
);
export
const
cloudProviders
=
providers
.
filter
(
(
provider
)
=>
provider
!==
"ollama"
&&
provider
!==
"lmstudio"
,
);
/**
* Type derived from the ModelProviderSchema
*/
export
type
ModelProvider
=
z
.
infer
<
typeof
ModelProviderSchema
>
;
/**
* Zod schema for large language model configuration
*/
export
const
LargeLanguageModelSchema
=
z
.
object
({
name
:
z
.
string
(),
provider
:
ModelProviderSchema
,
provider
:
z
.
string
()
,
});
/**
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论