wip: Using mistral instead of OpenAi

This commit is contained in:
2025-03-07 13:42:50 +00:00
parent 2df18869e5
commit e595783d89
2 changed files with 11 additions and 7 deletions

View File

@ -88,6 +88,8 @@ func main() {
return return
} }
fmt.Printf("%+v\n", image)
imageInfo, err := openAiClient.GetImageInfo(image.Image.ImageName, image.Image.Image) imageInfo, err := openAiClient.GetImageInfo(image.Image.ImageName, image.Image.Image)
if err != nil { if err != nil {
log.Println("2") log.Println("2")
@ -180,6 +182,7 @@ func main() {
} }
image, err := io.ReadAll(r.Body) image, err := io.ReadAll(r.Body)
fmt.Println(image)
if err != nil { if err != nil {
log.Println("First case") log.Println("First case")

View File

@ -72,9 +72,7 @@ func (content *OpenAiMessages) AddImage(imageName string, image []byte) error {
arrayMessage := OpenAiArrayMessage{Role: ROLE_USER, Content: make([]OpenAiContent, 1)} arrayMessage := OpenAiArrayMessage{Role: ROLE_USER, Content: make([]OpenAiContent, 1)}
arrayMessage.Content[0] = OpenAiImage{ arrayMessage.Content[0] = OpenAiImage{
ImageType: IMAGE_TYPE, ImageType: IMAGE_TYPE,
ImageUrl: ImageUrl{ ImageUrl: fmt.Sprintf("data:image/%s;base64,%s", extension, encodedString),
Url: fmt.Sprintf("data:image/%s;base64,%s", extension, encodedString),
},
} }
content.Messages = append(content.Messages, arrayMessage) content.Messages = append(content.Messages, arrayMessage)
@ -104,8 +102,8 @@ type ImageUrl struct {
} }
type OpenAiImage struct { type OpenAiImage struct {
ImageType string `json:"type"` ImageType string `json:"type"`
ImageUrl ImageUrl `json:"image_url"` ImageUrl string `json:"image_url"`
} }
func (imageMessage OpenAiImage) ToJson() ([]byte, error) { func (imageMessage OpenAiImage) ToJson() ([]byte, error) {
@ -192,7 +190,7 @@ func CreateOpenAiClient() (OpenAiClient, error) {
return OpenAiClient{ return OpenAiClient{
apiKey: apiKey, apiKey: apiKey,
url: "https://api.openai.com/v1/chat/completions", url: "https://api.mistral.ai/v1/chat/completions",
systemPrompt: PROMPT, systemPrompt: PROMPT,
Do: func(req *http.Request) (*http.Response, error) { Do: func(req *http.Request) (*http.Response, error) {
client := &http.Client{} client := &http.Client{}
@ -279,7 +277,7 @@ func parseOpenAiResponse(jsonResponse []byte) (ImageInfo, error) {
} }
func (client OpenAiClient) GetImageInfo(imageName string, imageData []byte) (ImageInfo, error) { func (client OpenAiClient) GetImageInfo(imageName string, imageData []byte) (ImageInfo, error) {
aiRequest, err := getCompletionsForImage("gpt-4o-mini", 1.0, client.systemPrompt, imageName, RESPONSE_FORMAT, imageData) aiRequest, err := getCompletionsForImage("pixtral-12b-2409", 1.0, client.systemPrompt, imageName, RESPONSE_FORMAT, imageData)
if err != nil { if err != nil {
return ImageInfo{}, err return ImageInfo{}, err
} }
@ -300,6 +298,8 @@ func (client OpenAiClient) GetImageInfo(imageName string, imageData []byte) (Ima
return ImageInfo{}, err return ImageInfo{}, err
} }
fmt.Println(string(jsonAiRequest))
request, err := client.getRequest(jsonAiRequest) request, err := client.getRequest(jsonAiRequest)
if err != nil { if err != nil {
return ImageInfo{}, err return ImageInfo{}, err
@ -315,5 +315,6 @@ func (client OpenAiClient) GetImageInfo(imageName string, imageData []byte) (Ima
return ImageInfo{}, err return ImageInfo{}, err
} }
fmt.Println(string(response))
return parseOpenAiResponse(response) return parseOpenAiResponse(response)
} }