"github.com/volcengine/volcengine-go-sdk/service/arkruntime"
"github.com/volcengine/volcengine-go-sdk/service/arkruntime/model/responses"
"github.com/volcengine/volcengine-go-sdk/volcengine"
client := arkruntime.NewClientWithApiKey(
// Get API Key: https://ark.volcengine.com/region:cn-beijing/apikey
os.Getenv("ARK_API_KEY"),
arkruntime.WithBaseUrl("https://ark.cn-beijing.volces.com/api/v3"),
ctx := context.Background()
fmt.Println("----- Use remote audio URL -----")
inputMessage := &responses.ItemInputMessage{
Role: responses.MessageRole_user,
Content: []*responses.ContentItem{
Union: &responses.ContentItem_Audio{
Audio: &responses.ContentItemAudio{
Type: responses.ContentItemType_input_audio,
AudioUrl: "https://ark-project.tos-cn-beijing.volces.com/doc_audio/ark_demo_audio.mp3",
Union: &responses.ContentItem_Text{
Text: &responses.ContentItemText{
Type: responses.ContentItemType_input_text,
createResponsesReq := &responses.ResponsesRequest{
Model: "doubao-seed-2-0-lite-260428",
Input: &responses.ResponsesInput{
Union: &responses.ResponsesInput_ListValue{
ListValue: &responses.InputItemList{
ListValue: []*responses.InputItem{{
Union: &responses.InputItem_InputMessage{
InputMessage: inputMessage,
Caching: &responses.ResponsesCaching{Type: responses.CacheType_enabled.Enum()},
resp, err := client.CreateResponsesStream(ctx, createResponsesReq)
fmt.Printf("stream error: %v\n", err)
event, err := resp.Recv()
fmt.Printf("stream error: %v\n", err)
if responseEvent := event.GetResponse(); responseEvent != nil {
responseId = responseEvent.GetResponse().GetId()
fmt.Printf("\nResponse ID: %s\n", responseId)
fmt.Println("\n----- Audio recognition completed -----")
func handleEvent(event *responses.Event) {
switch event.GetEventType() {
case responses.EventType_response_reasoning_summary_text_delta.String():
print(event.GetReasoningText().GetDelta())
case responses.EventType_response_reasoning_summary_text_done.String():
fmt.Printf("\nAggregated reasoning text: %s\n", event.GetReasoningText().GetText())
case responses.EventType_response_output_text_delta.String():
print(event.GetText().GetDelta())
case responses.EventType_response_output_text_done.String():
fmt.Printf("\nAggregated output text: %s\n", event.GetTextDone().GetText())