openaigo
1.0.0
Еще один клиент API для api.openai.com .
Эта библиотека поддержана сообществом, официально не поддерживается Openai.
package main
import (
"context"
"fmt"
"os"
"github.com/otiai10/openaigo"
)
func main () {
client := openaigo . NewClient ( os . Getenv ( "OPENAI_API_KEY" ))
request := openaigo. ChatRequest {
Model : "gpt-4o" ,
Messages : []openaigo. Message {
{ Role : "user" , Content : "Hello!" },
},
}
ctx := context . Background ()
response , err := client . Chat ( ctx , request )
fmt . Println ( response , err )
}Если вы просто хотите попробовать, нажмите команды ниже.
git clone https://github.com/otiai10/openaigo.git
cd openaigo
OPENAI_API_KEY=YourAPIKey go run ./testapp/main.goСм. Тестовое приложение как рабочий пример.
Посетите https://beta.openai.com/account/api-keys, и вы можете создать свой собственный ключ API, чтобы начать бесплатно.
function_call ? request := openaigo. ChatRequest {
Messages : []openaigo. Message {
{ Role : "user" , Content : "How's the weather today in Tokyo?" },
},
Functions : []openaigo. Function {
{
Name : "get_weather" ,
Parameters : openaigo. Parameters {
Type : "object" ,
Properties : map [ string ] map [ string ] any {
"location" : { "type" : "string" },
"date" : { "type" : "string" , "description" : "ISO 8601 date string" },
},
Required : [] string { "location" },
},
}
},
} Если вы хотите сокращения , используйте functioncall .
import fc "github.com/otiai10/openaigo/functioncall"
request . Functions = fc. Funcs {
"get_weather" : { GetWeather , "Get weather of the location" , fc. Params {
{ "location" , "string" , "location of the weather" , true },
{ "date" , "string" , "ISO 8601 date string" , true },
}},
}См. Тестовое приложение как рабочий пример.
stream ? client := openaigo . NewClient ( OPENAI_API_KEY )
request := openaigo. ChatRequest {
Stream : true ,
StreamCallback : func ( res ChatCompletionResponse , done bool , err error ) {
// Do what you want!
// You might need chan handling here.
// See test app how you can do it.
// https://github.com/otiai10/openaigo/search?q=chat_completion_stream
},
} client := openaigo . NewClient ( OPENAI_API_KEY )
// You can set whatever you want
transport := & http. Transport { Proxy : http . ProxyFromEnvironment }
client . HTTPClient = & http. Client { Transport : transport }
// Done!Сообщите о любой проблеме здесь или любые отзывы приветствуются.