"github.com/volcengine/volcengine-go-sdk/service/arkruntime"
"github.com/volcengine/volcengine-go-sdk/service/arkruntime/model"
"github.com/volcengine/volcengine-go-sdk/volcengine"
const Model = "<YOUR_ENDPOINT_ID>"
client := arkruntime.NewClientWithApiKey(
os.Getenv("ARK_API_KEY"),
arkruntime.WithBaseUrl("https://ark.cn-beijing.volces.com/api/v3"),
goCtx := context.Background()
fmt.Println("----- create context -----")
createCtxReq := model.CreateContextRequest{
Mode: model.ContextModeCommonPrefix,
Messages: []*model.ChatCompletionMessage{
Role: model.ChatMessageRoleSystem,
Content: &model.ChatCompletionMessageContent{
StringValue: volcengine.String("你是李雷"),
TTL: volcengine.Int(3600),
createCtxRsp, err := client.CreateContext(goCtx, createCtxReq)
fmt.Printf("create context error: %v\n", err)
fmt.Printf("create context response: %v\n", createCtxRsp)
fmt.Println("----- chat round 1 (non-stream) -----")
req := model.ContextChatCompletionRequest{
ContextID: createCtxRsp.ID,
Messages: []*model.ChatCompletionMessage{
Role: model.ChatMessageRoleUser,
Content: &model.ChatCompletionMessageContent{
StringValue: volcengine.String("我的名字是方方"),
resp, err := client.CreateContextChatCompletion(goCtx, req)
fmt.Printf("non-stream chat error: %v\n", err)
fmt.Println(*resp.Choices[0].Message.Content.StringValue)
fmt.Println("----- chat round 2 (stream) -----")
req = model.ContextChatCompletionRequest{
ContextID: createCtxRsp.ID,
Messages: []*model.ChatCompletionMessage{
Role: model.ChatMessageRoleUser,
Content: &model.ChatCompletionMessageContent{
StringValue: volcengine.String("你是谁,我是谁?"),
stream, err := client.CreateContextChatCompletionStream(goCtx, req)
fmt.Printf("stream chat error: %v\n", err)
recv, err := stream.Recv()
fmt.Printf("Stream chat error: %v\n", err)
if len(recv.Choices) > 0 {
fmt.Print(recv.Choices[0].Delta.Content)