{"id":23915050,"url":"https://github.com/danplayer/chatgpt-sdk","last_synced_at":"2025-04-11T16:27:14.527Z","repository":{"id":77142295,"uuid":"605410289","full_name":"DanPlayer/chatgpt-sdk","owner":"DanPlayer","description":"simple chatgpt sdk","archived":false,"fork":false,"pushed_at":"2023-06-07T10:29:45.000Z","size":54,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-25T12:41:12.079Z","etag":null,"topics":["chatgpt","chatgpt-sdk","dall-e","go","golang","gpt","gpt-4","gpt3","openai","sdk","whisper"],"latest_commit_sha":null,"homepage":"https://platform.openai.com/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DanPlayer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-23T04:56:23.000Z","updated_at":"2024-11-16T18:00:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"67d522c5-7f2d-49cb-8641-4c74b9caea85","html_url":"https://github.com/DanPlayer/chatgpt-sdk","commit_stats":{"total_commits":16,"total_committers":2,"mean_commits":8.0,"dds":0.0625,"last_synced_commit":"267bc15d2e36c5804a85acc37c9e39d9a96ed084"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanPlayer%2Fchatgpt-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanPlayer%2Fchatgpt-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanPlayer%2Fchatgpt-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanPlayer%2Fchatgpt-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DanPlayer","download_url":"https://codeload.github.com/DanPlayer/chatgpt-sdk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248439957,"owners_count":21103720,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chatgpt","chatgpt-sdk","dall-e","go","golang","gpt","gpt-4","gpt3","openai","sdk","whisper"],"created_at":"2025-01-05T10:44:37.852Z","updated_at":"2025-04-11T16:27:14.503Z","avatar_url":"https://github.com/DanPlayer.png","language":"Go","readme":"# chatgpt-sdk\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/DanPlayer/chatgpt-sdk)](https://goreportcard.com/report/github.com/DanPlayer/chatgpt-sdk)\n\nchatgpt-sdk是一个使用Go语言编写的简单而强大的chatgpt sdk，可以方便地调用[ChatGpt-API](https://platform.openai.com/)的各种接口，实现文本生成、代码生成和图像生成等功能。它支持国内使用代理模式，避免网络问题。它还提供了一些常用的模型和参数的常量，简化用户的选择。\n\n## 安装\n\n使用`go get`命令安装sdk：\n\n```go\ngo get github.com/DanPlayer/chatgpt-sdk\n```\n\n## 使用\n\n首先，创建一个`v1.Client`对象，传入`v1.ChatGptOption`结构体，包含以下字段：\n\n- `SecretKey`：必须，你的ChatGpt-API密钥\n- `HasProxy`：可选，是否使用代理模式，默认为false\n- `ProxyUrl`：可选，代理服务器的URL，如`http://localhost:7890`\n\n例如：\n\n```go\nconst SecretKey = \"XXXXXXXXXXXXXXXXXXXXXXXXXXXX\"\nvar ChatGpt = v1.Client(v1.ChatGptOption{\n    SecretKey: SecretKey,\n    HasProxy:  true,\n    ProxyUrl:  \"http://localhost:7890\",\n})\n```\n\n然后，调用`v1.Client`对象的各种方法，传入相应的请求结构体，获取响应结构体或错误信息。以下是一些常用的方法：\n\n- `Models()`：获取可用的模型列表\n- `Completions()`：根据给定的模型和提示生成文本\n- `Chat()`：根据给定的模型和会话历史进行聊天\n- `Audio()`：根据给定的模型和文本生成音频\n- `CreateImage()`：根据给定的模型和文本生成图像\n\n具体的请求和响应结构体的字段，请参考[ChatGpt-API文档](https://platform.openai.com/)。\n\n## 示例\n\n以下是一些使用chatgpt-sdk的示例代码：\n\n### 文本生成\n\n```go\nctx := context.Background()\ncompletions, err := ChatGpt.Completions(ctx, v1.CompletionsRequest{\n    Model:       v1.GPT3TextDavinci003,\n    Prompt:      \"Say this is a test\",\n    Suffix:      \"\",\n    MaxTokens:   7,\n    Temperature: 0,\n})\nif err != nil {\n    fmt.Printf(\"completions error: %s\", err.Error())\n    return\n}\nfmt.Println(completions)\n```\n\n输出：\n\n```json\n{\n  \"id\": \"cmpl-3Z4Jy9c8w4lZ6j2wzQxqkQhY5\",\n  \"object\": \"text_completion\",\n  \"created\": 1639648229,\n  \"model\": \"text-davinci-003\",\n  \"choices\": [\n    {\n      \"text\": \". This is a test\",\n      \"index\": 0,\n      \"logprobs\": null,\n      \"finish_reason\": \"stop\"\n    }\n  ]\n}\n```\n\n### 代码生成\n\n```go\nctx := context.Background()\ncompletions, err := ChatGpt.Completions(ctx, v1.CompletionsRequest{\n    Model:     v1.CodexCodeDavinci002,\n    Prompt:    \"// Write a function in Go that takes a slice of integers and returns the sum of the elements\\nfunc sum(\",\n    Suffix:    \"\",\n    MaxTokens: 20,\n})\nif err != nil {\n    fmt.Printf(\"completions error: %s\", err.Error())\n    return\n}\nfmt.Println(completions)\n```\n\n输出：\n\n```json\n{\n  \"id\": \"cmpl-3Z4K2Rn8w4lZ6j2wzQxqkQhY5\",\n  \"object\": \"text_completion\",\n  \"created\": 1639648397,\n  \"model\": \"code-davinci-002\",\n  \"choices\": [\n    {\n      \"text\": \"nums []int) int {\\n\\tsum := 0\\n\\tfor _, n := range nums {\\n\\t\\tsum += n\\n\\t}\\n\\treturn sum\\n}\",\n      \"index\": 0,\n      \"logprobs\": null,\n      \"finish_reason\": \"stop\"\n    }\n  ]\n}\n```\n\n### 图像生成\n\n```go\nctx := context.Background()\ncreateImage, err := ChatGpt.CreateImage(ctx, v1.CreateImageRequest{\n    Model:           v1.GPT3Dot5Turbo0301,\n    Query:           \"a cute cat wearing a hat\",\n    Size:            v1.CreateImageSize256x256,\n    ResponseFormat:  v1.CreateImageResponseFormatURL,\n})\nif err != nil {\n    fmt.Printf(\"createImage error: %s\", err.Error())\n    return\n}\nfmt.Println(createImage)\n```\n\n输出：\n\n```json\n{\n  \"id\": \"img-3Z4K8Xn8w4lZ6j2wzQxqkQhY5\",\n  \"object\": \"image_completion\",\n  \"created\": 1639648547,\n  \"model\": \"gpt-3.5-turbo-0301\",\n  \"url\": \"\u003cimage url\u003e\"\n}\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanplayer%2Fchatgpt-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanplayer%2Fchatgpt-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanplayer%2Fchatgpt-sdk/lists"}