@@ -5,6 +5,9 @@ import { ApiHandlerOptions, ModelInfo, openAiModelInfoSaneDefaults } from "../..
55import { convertToOpenAiMessages } from "../transform/openai-format"
66import { convertToR1Format } from "../transform/r1-format"
77import { ApiStream } from "../transform/stream"
8+ import { DEEP_SEEK_DEFAULT_TEMPERATURE } from "./openai"
9+
10+ const OLLAMA_DEFAULT_TEMPERATURE = 0
811
912export class OllamaHandler implements ApiHandler , SingleCompletionHandler {
1013 private options : ApiHandlerOptions
@@ -20,7 +23,7 @@ export class OllamaHandler implements ApiHandler, SingleCompletionHandler {
2023
2124 async * createMessage ( systemPrompt : string , messages : Anthropic . Messages . MessageParam [ ] ) : ApiStream {
2225 const modelId = this . getModel ( ) . id
23- const useR1Format = modelId . toLowerCase ( ) . includes ( ' deepseek-r1' )
26+ const useR1Format = modelId . toLowerCase ( ) . includes ( " deepseek-r1" )
2427 const openAiMessages : OpenAI . Chat . ChatCompletionMessageParam [ ] = [
2528 { role : "system" , content : systemPrompt } ,
2629 ...( useR1Format ? convertToR1Format ( messages ) : convertToOpenAiMessages ( messages ) ) ,
@@ -29,7 +32,7 @@ export class OllamaHandler implements ApiHandler, SingleCompletionHandler {
2932 const stream = await this . client . chat . completions . create ( {
3033 model : this . getModel ( ) . id ,
3134 messages : openAiMessages ,
32- temperature : 0 ,
35+ temperature : this . options . modelTemperature ?? OLLAMA_DEFAULT_TEMPERATURE ,
3336 stream : true ,
3437 } )
3538 for await ( const chunk of stream ) {
@@ -53,11 +56,15 @@ export class OllamaHandler implements ApiHandler, SingleCompletionHandler {
5356 async completePrompt ( prompt : string ) : Promise < string > {
5457 try {
5558 const modelId = this . getModel ( ) . id
56- const useR1Format = modelId . toLowerCase ( ) . includes ( ' deepseek-r1' )
59+ const useR1Format = modelId . toLowerCase ( ) . includes ( " deepseek-r1" )
5760 const response = await this . client . chat . completions . create ( {
5861 model : this . getModel ( ) . id ,
59- messages : useR1Format ? convertToR1Format ( [ { role : "user" , content : prompt } ] ) : [ { role : "user" , content : prompt } ] ,
60- temperature : 0 ,
62+ messages : useR1Format
63+ ? convertToR1Format ( [ { role : "user" , content : prompt } ] )
64+ : [ { role : "user" , content : prompt } ] ,
65+ temperature :
66+ this . options . modelTemperature ??
67+ ( useR1Format ? DEEP_SEEK_DEFAULT_TEMPERATURE : OLLAMA_DEFAULT_TEMPERATURE ) ,
6168 stream : false ,
6269 } )
6370 return response . choices [ 0 ] ?. message . content || ""
0 commit comments