Skip to content

Commit ed1ed5d

Browse files
authored
feat: support OpenRouter model parameters (#645)
* feat: support OpenRouter model parameters * feat: support OpenRouter model parameters
1 parent 65e5fde commit ed1ed5d

3 files changed

Lines changed: 54 additions & 12 deletions

File tree

model/openrouter.go

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,22 @@ import (
2626
)
2727

2828
type OpenRouterModelProvider struct {
29-
subType string
30-
secretKey string
31-
siteName string
32-
siteUrl string
29+
subType string
30+
secretKey string
31+
siteName string
32+
siteUrl string
33+
temperature *float32
34+
topP *float32
3335
}
3436

35-
func NewOpenRouterModelProvider(subType string, secretKey string) (*OpenRouterModelProvider, error) {
37+
func NewOpenRouterModelProvider(subType string, secretKey string, temperature float32, topP float32) (*OpenRouterModelProvider, error) {
3638
p := &OpenRouterModelProvider{
37-
subType: subType,
38-
secretKey: secretKey,
39-
siteName: "Casibase",
40-
siteUrl: "https://casibase.org",
39+
subType: subType,
40+
secretKey: secretKey,
41+
siteName: "Casibase",
42+
siteUrl: "https://casibase.org",
43+
temperature: &temperature,
44+
topP: &topP,
4145
}
4246
return p, nil
4347
}
@@ -74,6 +78,8 @@ func (p *OpenRouterModelProvider) QueryText(question string, writer io.Writer, b
7478
}
7579

7680
maxTokens := 4097 - promptTokens
81+
temperature := p.temperature
82+
topP := p.topP
7783

7884
respStream, err := client.CreateChatCompletionStream(
7985
ctx,
@@ -90,8 +96,8 @@ func (p *OpenRouterModelProvider) QueryText(question string, writer io.Writer, b
9096
},
9197
},
9298
Stream: false,
93-
Temperature: nil,
94-
TopP: nil,
99+
Temperature: temperature,
100+
TopP: topP,
95101
MaxTokens: maxTokens,
96102
},
97103
)

model/provider.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ func GetModelProvider(typ string, subType string, clientId string, clientSecret
3333
} else if typ == "Claude" {
3434
p, err = NewClaudeModelProvider(subType, clientSecret)
3535
} else if typ == "OpenRouter" {
36-
p, err = NewOpenRouterModelProvider(subType, clientSecret)
36+
p, err = NewOpenRouterModelProvider(subType, clientSecret, temperature, topP)
3737
} else if typ == "Ernie" {
3838
p, err = NewErnieModelProvider(subType, clientId, clientSecret, temperature, topP, presencePenalty)
3939
} else if typ == "iFlytek" {

web/src/ProviderEditPage.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,42 @@ class ProviderEditPage extends React.Component {
279279
</>
280280
) : null
281281
}
282+
{
283+
(this.state.provider.category === "Model" && this.state.provider.type === "OpenRouter") ? (
284+
<>
285+
<Row style={{marginTop: "20px"}}>
286+
<Col style={{marginTop: "5px"}} span={(Setting.isMobile()) ? 22 : 2}>
287+
{i18next.t("provider:Temperature")}:
288+
</Col>
289+
<this.InputSlider
290+
min={0}
291+
max={2}
292+
step={0.01}
293+
value={this.state.provider.temperature}
294+
onChange={(value) => {
295+
this.updateProviderField("temperature", value);
296+
}}
297+
isMobile={Setting.isMobile()}
298+
/>
299+
</Row>
300+
<Row style={{marginTop: "20px"}}>
301+
<Col style={{marginTop: "5px"}} span={(Setting.isMobile()) ? 22 : 2}>
302+
{i18next.t("provider:Top P")}:
303+
</Col>
304+
<this.InputSlider
305+
min={0}
306+
max={1}
307+
step={0.01}
308+
value={this.state.provider.topP}
309+
onChange={(value) => {
310+
this.updateProviderField("topP", value);
311+
}}
312+
isMobile={Setting.isMobile()}
313+
/>
314+
</Row>
315+
</>
316+
) : null
317+
}
282318
{
283319
(this.state.provider.category === "Model" && this.state.provider.type === "iFlytek") ? (
284320
<>

0 commit comments

Comments
 (0)