Skip to content

Commit b75d957

Browse files
committed
feat(cli.go): add OpenAIChunkTimeout option for configurable token chunk timeout
1 parent 5c8349d commit b75d957

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

internal/cli/cli.go

+9
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ type cliOptions struct {
4949
OpenAITemperature float32 `name:"temperature" help:"OpenAI temperature" env:"OPENAI_TEMPERATURE" default:"0.3"`
5050
OpenAITopP float32 `name:"top-p" help:"OpenAI top_p" env:"OPENAI_TOP_P" default:"0.3"`
5151
OpenAIResponseFormat string `name:"format" help:"OpenAI response format ('text' or 'json_object')" env:"OPENAI_RESPONSE_FORMAT" default:"text"`
52+
OpenAIChunkTimeout string `name:"chunk-timeout" help:"Timeout for each token chunk" env:"OPENAI_CHUNK_TIMEOUT"`
5253

5354
Timeout time.Duration `short:"T" help:"Timeout for API requests" env:"DRAGOMAN_TIMEOUT" default:"3m"`
5455
Verbose bool `short:"v" help:"Verbose output"`
@@ -126,6 +127,14 @@ func (app *App) translate() {
126127
opts = append(opts, openai.Stream(os.Stdout))
127128
}
128129

130+
if options.OpenAIChunkTimeout != "" {
131+
chunkTimeout, err := time.ParseDuration(options.OpenAIChunkTimeout)
132+
if err != nil {
133+
app.kong.Fatalf("invalid chunk timeout: %v", err)
134+
}
135+
opts = append(opts, openai.ChunkTimeout(chunkTimeout))
136+
}
137+
129138
model := openai.New(options.OpenAIKey, opts...)
130139
translator := dragoman.NewTranslator(model)
131140

0 commit comments

Comments
 (0)