ChatGPT 杂谈与干货

QQ 群(316628299)一直有关于 GPT 的话题,论坛的讨论比较正式,目前就看到两个帖子

初学可以把它工具当资料补充,事半功倍,但准确性需特别甄别。

附:用 API 部署的网站以及搭建教程:chatgpt-web

注:学生党可以白嫖 Github 学生包(跳转链接),里边有 copilot 和 Azure 云(白嫖额度 100刀/每年)。


API 工具

最近写了个 API 的封装工具:

pip install openai-api-call == 0.2 # python
]dev https://github.com/RexWzh/ChatAPICall.jl # julia

用 API 生成翻译文档

using ChatAPICall
setapikey("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"
showapikey() # 检查密钥

# 读取文件
content = open("README.md", "r") do file
    read(file, String)
end

# 初始化对话
chat = Chat()
addsystem!(chat, "你是一个实用的翻译助手")
adduser!(chat, "翻译这段话,保留 Markdown 格式\n" * content)

resp = getresponse!(chat)
open("README_zh-CN.md", "w") do file
    write(file, resp.content)
end

生成内容如下,翻译质量还可以

ChatAPICall

OpenAI 的API的简单封装。

用法

设置 API 密钥

using ChatAPICall
setapikey("sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")

或者在使用该包时设置 OPENAI_API_KEY 变量以自动加载 API 密钥:

# 将以下代码添加到 ~/.bashrc

export OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

设置代理 (可选)

using ChatAPICall

# 设置代理 (示例)
proxy_on(http="127.0.0.1:7890", https="socks://127.0.0.1:7891")

# 查看当前代理
proxy_status()

# 关闭代理
proxy_off()

基础使用

示例1:发送消息并返回信息:

using ChatAPICall

# 检查 API 密钥是否设置
showapikey()

# 检查是否开启代理
proxy_status()

# 发送消息并返回响应
chat = Chat("Hello, GPT-3.5!")
resp = getresponse(chat)

示例2:自定义消息模板并返回信息和使用的令牌数:

using ChatAPICall

# 自定义发送模板
function ChatAPICall.defaultprompt(msg)
    [
        Dict("role"=>"system", "content"=>"帮我翻译这段文字"),
        Dict("role"=>"user", "content"=>msg)
    ]
end

chat = Chat("Hello!")
# 将重试次数设置为 Inf
response = getresponse(chat; temperature=0.5, maxrequests=-1)
println("Number of consumed tokens: ", response.total_tokens)
println("Returned content: ", response.content)

进阶使用

根据上一次的响应继续聊天:

# 第一次呼叫
chat = Chat("Hello, GPT-3.5!")
resp = getresponse!(chat) # 更新聊天记录
println(resp.content)

# 继续聊天
adduser!(chat, "How are you?")
next_resp = getresponse!(chat)
println(next_resp.content)

# 伪造响应
adduser!(chat, "What's your name?")
addassistant!(chat, "My name is GPT-3.5.")

# 打印聊天记录
print(chat)

许可证

本包使用 MIT 许可证。详见 LICENSE 文件。

特点

  • 待完成

杂谈

以下个人观点。

优点大家应该都有体会,ChatGPT 的聊天模式,用对话引导解决问题,降低学习门槛,能快速处理常见的代码问题。而且聊天反馈几乎是瞬时的,随叫随到。我以往学 Julia 的经历,遇到错误或不熟悉某个工具,更多是用 Google 英文搜索来筛找解答。现在对话能即刻回复答案,还省去了查阅时间。通过对话,它能不断完善自己的解答,而且还能结合实际处理的问题,直接给代码建议。

缺点主要是生成的质量。目前生成错误率不低,如果不仔细甄别,在工作前期混入 Bug,后期调改会变得更麻烦。

错误例子,图片较长就只贴链接了:

  1. 如何 Pkg 删除当前环境的所有包
  2. 编写 HTTP 请求
4 个赞