1
0
mirror of https://github.com/coalaura/whiskr.git synced 2025-09-08 17:06:42 +00:00
Files
whiskr/openrouter.go

49 lines
1.1 KiB
Go
Raw Normal View History

2025-08-05 03:56:23 +02:00
package main
import (
"context"
2025-08-25 22:45:03 +02:00
"errors"
2025-08-05 03:56:23 +02:00
"github.com/revrost/go-openrouter"
)
2025-08-14 17:08:45 +02:00
func init() {
openrouter.DisableLogs()
}
2025-08-05 03:56:23 +02:00
func OpenRouterClient() *openrouter.Client {
2025-08-23 22:39:15 +02:00
return openrouter.NewClient(env.Tokens.OpenRouter, openrouter.WithXTitle("Whiskr"), openrouter.WithHTTPReferer("https://github.com/coalaura/whiskr"))
2025-08-05 03:56:23 +02:00
}
func OpenRouterStartStream(ctx context.Context, request openrouter.ChatCompletionRequest) (*openrouter.ChatCompletionStream, error) {
client := OpenRouterClient()
stream, err := client.CreateChatCompletionStream(ctx, request)
if err != nil {
return nil, err
}
return stream, nil
}
2025-08-11 15:43:00 +02:00
2025-08-14 03:53:14 +02:00
func OpenRouterRun(ctx context.Context, request openrouter.ChatCompletionRequest) (openrouter.ChatCompletionResponse, error) {
client := OpenRouterClient()
2025-08-25 22:45:03 +02:00
response, err := client.CreateChatCompletion(ctx, request)
if err != nil {
return response, err
}
if len(response.Choices) == 0 {
return response, errors.New("no choices")
}
return response, nil
2025-08-14 03:53:14 +02:00
}
2025-08-16 15:15:06 +02:00
func OpenRouterGetGeneration(ctx context.Context, id string) (openrouter.Generation, error) {
client := OpenRouterClient()
2025-08-11 15:43:00 +02:00
2025-08-16 15:15:06 +02:00
return client.GetGeneration(ctx, id)
2025-08-11 15:43:00 +02:00
}