Skip to content

Commit 1485f11

Browse files
committed
feat: examples added
1 parent b678e39 commit 1485f11

File tree

7 files changed

+348
-0
lines changed

7 files changed

+348
-0
lines changed

examples/01-chat/main.go

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package main
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"os"
7+
8+
"github.com/go-deepseek/deepseek"
9+
"github.com/go-deepseek/deepseek/request"
10+
)
11+
12+
var apiKey = "your_deepseek_api_key"
13+
14+
func main() {
15+
if apiKeyEnv := os.Getenv("DEEPSEEK_API_KEY"); apiKeyEnv != "" {
16+
apiKey = apiKeyEnv
17+
}
18+
19+
// create deepseek api client
20+
cli, err := deepseek.NewClient(apiKey)
21+
if err != nil {
22+
panic(err)
23+
}
24+
25+
inputMessage := "Hello" // set your input message
26+
27+
chatReq := &request.ChatCompletionsRequest{
28+
Model: deepseek.DEEPSEEK_CHAT_MODEL,
29+
Stream: false,
30+
Messages: []*request.Message{
31+
{
32+
Role: "user",
33+
Content: inputMessage,
34+
},
35+
},
36+
}
37+
fmt.Printf("input message => %s\n", chatReq.Messages[0].Content)
38+
39+
// call deepseek api
40+
chatResp, err := cli.CallChatCompletionsChat(context.Background(), chatReq)
41+
if err != nil {
42+
panic(err)
43+
}
44+
fmt.Printf("output message => %s\n", chatResp.Choices[0].Message.Content)
45+
}

examples/02-reasoner/main.go

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package main
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"os"
7+
8+
"github.com/go-deepseek/deepseek"
9+
"github.com/go-deepseek/deepseek/request"
10+
)
11+
12+
var apiKey = "your_deepseek_api_key"
13+
14+
func main() {
15+
if apiKeyEnv := os.Getenv("DEEPSEEK_API_KEY"); apiKeyEnv != "" {
16+
apiKey = apiKeyEnv
17+
}
18+
19+
// create deepseek api client
20+
cli, err := deepseek.NewClient(apiKey)
21+
if err != nil {
22+
panic(err)
23+
}
24+
25+
inputMessage := "Hello" // set your input message
26+
27+
chatReq := &request.ChatCompletionsRequest{
28+
Model: deepseek.DEEPSEEK_REASONER_MODEL,
29+
Stream: false,
30+
Messages: []*request.Message{
31+
{
32+
Role: "user",
33+
Content: inputMessage,
34+
},
35+
},
36+
}
37+
fmt.Printf("input message => %s\n", chatReq.Messages[0].Content)
38+
39+
// call deepseek api
40+
chatResp, err := cli.CallChatCompletionsReasoner(context.Background(), chatReq)
41+
if err != nil {
42+
panic(err)
43+
}
44+
fmt.Printf("output reasoning => %s\n", chatResp.Choices[0].Message.ReasoningContent)
45+
fmt.Printf("output message => %s\n", chatResp.Choices[0].Message.Content)
46+
}

examples/03-chat-stream/main.go

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package main
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"io"
7+
"os"
8+
9+
"github.com/go-deepseek/deepseek"
10+
"github.com/go-deepseek/deepseek/request"
11+
)
12+
13+
var apiKey = "your_deepseek_api_key"
14+
15+
func main() {
16+
if apiKeyEnv := os.Getenv("DEEPSEEK_API_KEY"); apiKeyEnv != "" {
17+
apiKey = apiKeyEnv
18+
}
19+
20+
// create deepseek api client
21+
cli, err := deepseek.NewClient(apiKey)
22+
if err != nil {
23+
panic(err)
24+
}
25+
26+
inputMessage := "Hello" // set your input message
27+
28+
chatReq := &request.ChatCompletionsRequest{
29+
Model: deepseek.DEEPSEEK_CHAT_MODEL,
30+
Stream: true,
31+
Messages: []*request.Message{
32+
{
33+
Role: "user",
34+
Content: inputMessage,
35+
},
36+
},
37+
}
38+
fmt.Printf("input message => %s\n", chatReq.Messages[0].Content)
39+
40+
// call deepseek api
41+
sr, err := cli.StreamChatCompletionsChat(context.Background(), chatReq)
42+
if err != nil {
43+
panic(err)
44+
}
45+
46+
fmt.Print("output message => ")
47+
for {
48+
chatResp, err := sr.Read()
49+
if err != nil {
50+
if err == io.EOF {
51+
break
52+
}
53+
panic(err)
54+
}
55+
fmt.Print(chatResp.Choices[0].Delta.Content)
56+
}
57+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package main
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"io"
7+
"os"
8+
9+
"github.com/go-deepseek/deepseek"
10+
"github.com/go-deepseek/deepseek/request"
11+
)
12+
13+
var apiKey = "your_deepseek_api_key"
14+
15+
func main() {
16+
if apiKeyEnv := os.Getenv("DEEPSEEK_API_KEY"); apiKeyEnv != "" {
17+
apiKey = apiKeyEnv
18+
}
19+
20+
// create deepseek api client
21+
cli, err := deepseek.NewClient(apiKey)
22+
if err != nil {
23+
panic(err)
24+
}
25+
26+
inputMessage := "Hello" // set your input message
27+
28+
chatReq := &request.ChatCompletionsRequest{
29+
Model: deepseek.DEEPSEEK_REASONER_MODEL,
30+
Stream: true,
31+
Messages: []*request.Message{
32+
{
33+
Role: "user",
34+
Content: inputMessage,
35+
},
36+
},
37+
}
38+
fmt.Printf("input message => %s\n", chatReq.Messages[0].Content)
39+
40+
// call deepseek api
41+
sr, err := cli.StreamChatCompletionsReasoner(context.Background(), chatReq)
42+
if err != nil {
43+
panic(err)
44+
}
45+
46+
fmt.Print("output message => ")
47+
for {
48+
chatResp, err := sr.Read()
49+
if err != nil {
50+
if err == io.EOF {
51+
break
52+
}
53+
panic(err)
54+
}
55+
if chatResp.Choices[0].Delta.ReasoningContent != "" {
56+
fmt.Print(chatResp.Choices[0].Delta.ReasoningContent)
57+
} else {
58+
fmt.Print(chatResp.Choices[0].Delta.Content)
59+
}
60+
}
61+
}

examples/05-client-config/main.go

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package main
2+
3+
import (
4+
"context"
5+
"fmt"
6+
"os"
7+
8+
"github.com/go-deepseek/deepseek"
9+
"github.com/go-deepseek/deepseek/config"
10+
"github.com/go-deepseek/deepseek/request"
11+
)
12+
13+
var apiKey = "your_deepseek_api_key"
14+
15+
func main() {
16+
if apiKeyEnv := os.Getenv("DEEPSEEK_API_KEY"); apiKeyEnv != "" {
17+
apiKey = apiKeyEnv
18+
}
19+
20+
// create deepseek api client with custom config
21+
cfg := config.Config{
22+
ApiKey: apiKey,
23+
TimeoutSeconds: 60,
24+
DisableRequestValidation: true,
25+
}
26+
cli, err := deepseek.NewClientWithConfig(cfg)
27+
if err != nil {
28+
panic(err)
29+
}
30+
31+
inputMessage := "Hello" // set your input message
32+
33+
chatReq := &request.ChatCompletionsRequest{
34+
Model: deepseek.DEEPSEEK_CHAT_MODEL,
35+
Stream: false,
36+
Messages: []*request.Message{
37+
{
38+
Role: "user",
39+
Content: inputMessage,
40+
},
41+
},
42+
}
43+
fmt.Printf("input message => %s\n", chatReq.Messages[0].Content)
44+
45+
// call deepseek api
46+
chatResp, err := cli.CallChatCompletionsChat(context.Background(), chatReq)
47+
if err != nil {
48+
panic(err)
49+
}
50+
fmt.Printf("output message => %s\n", chatResp.Choices[0].Message.Content)
51+
}

examples/99-deepseek-demo/main.go

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
package main
2+
3+
import (
4+
"bufio"
5+
"context"
6+
"fmt"
7+
"io"
8+
"os"
9+
"strings"
10+
11+
"github.com/go-deepseek/deepseek"
12+
"github.com/go-deepseek/deepseek/request"
13+
)
14+
15+
var apiKey = "your_deepseek_api_key"
16+
17+
func main() {
18+
if apiKeyEnv := os.Getenv("DEEPSEEK_API_KEY"); apiKeyEnv != "" {
19+
apiKey = apiKeyEnv
20+
}
21+
22+
// create deepseek api client
23+
cli, err := deepseek.NewClient(apiKey)
24+
if err != nil {
25+
panic(err)
26+
}
27+
28+
fmt.Println("This is deepseek demo; type `bye` to exit")
29+
for {
30+
fmt.Println()
31+
fmt.Print(">>> ")
32+
reader := bufio.NewReader(os.Stdin)
33+
lineBytes, _, err := reader.ReadLine()
34+
if err != nil {
35+
panic(err)
36+
}
37+
inputMessage := string(lineBytes)
38+
39+
if strings.ToLower(inputMessage) == "bye" {
40+
os.Exit(0)
41+
}
42+
43+
chatReq := &request.ChatCompletionsRequest{
44+
Model: deepseek.DEEPSEEK_REASONER_MODEL,
45+
Stream: true,
46+
Messages: []*request.Message{
47+
{
48+
Role: "user",
49+
Content: inputMessage,
50+
},
51+
},
52+
}
53+
54+
// call deepseek api
55+
sr, err := cli.StreamChatCompletionsReasoner(context.Background(), chatReq)
56+
if err != nil {
57+
panic(err)
58+
}
59+
60+
for {
61+
chatResp, err := sr.Read()
62+
if err != nil {
63+
if err == io.EOF {
64+
break
65+
}
66+
panic(err)
67+
}
68+
if chatResp.Choices[0].Delta.ReasoningContent != "" {
69+
fmt.Print(chatResp.Choices[0].Delta.ReasoningContent)
70+
} else {
71+
fmt.Print(chatResp.Choices[0].Delta.Content)
72+
}
73+
}
74+
}
75+
}

examples/README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
## examples
2+
3+
We have created multiple example which exhibits different features of this deepseek go client.
4+
5+
To run,
6+
```
7+
go run 01-chat/main.go
8+
9+
go run 02-reasoner/main.go
10+
11+
.. like-wise works for all examples.
12+
```
13+

0 commit comments

Comments
 (0)