2023-4-2 合规使用CHATGPT以及python如何调用chatgpt api的正确方式

ChatGPT最近很红火吧,要颠覆很多行业,大家都想试试,但是其开发公司OPENAI早有预见的封锁了中国的IP,大家都上不去体验不了,闹心吧,干着急,于是有些人用微信开了些转接小程序,但这一行为也游走在了一些边缘地带。

逛CSDN的显然不是网络小白,大小也得是程序员,虽然程序员在网络中都颇有办法,但魔法上网是违法的也希望大家明白。今天给大家一个合法的思路使用CHATGPT。因为我早早就有账号了,这个博客不教如何注册,就说怎么正规的用,首先买一个短期的阿里云的云服务器,服务器地点要在美国境内。。。对我们要开个一周左右的美国网站挣美国人钱这么个布局,然后找所有服务器中第二便宜的,因为我们要用WINDOWS系统,用最便宜的内存撑不住,选好付款大概30块人民币一周时长,然后远程登路服务器,现在你可以自己安装个浏览器去体验了,就在云服务器上体验就好。

在这里插入图片描述

然后再说说API调用,先要在官网上注册并登录后有专用地址获取API然后把这个API保存好,粘在我后面提供的代码里,先说清楚如果是在国内那是肯定连不上的,这个PYTHON程序也得部署在美国的阿里云服务器上跑才能正常工作



import os
import openai
# 设置API密钥
openai.api_key = "sk-j2nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx8E"

while 1:

    prompt =  input("""你想问什么?:""") 
    response = openai.Completion.create( model="text-davinci-003", prompt=prompt, max_tokens=1000, temperature=0.7  )
    print(response['choices'][0]['text'])

最后,其实这个API模型不是CHATGPT最新的模型,要比较傻一些,但毕竟是官方出的API智能接口再傻也比那些别的智能好很多,但是我没有这方面需求,没有继续用网页请求的方式去调用,至于4.0目前API还不能调用。

现在OPENAI已经把很多IP都封锁了,像ALIYUN这种服务商的美国IP已经无法进入对话界面了。特此提醒。

下面这个程序能记住自己说过的一句话。。。

import openai

openai.api_key = "sk-p9kHKa----------------------------------ITeFpk"

def ask(question, context=None):
    if context is None:
        prompt = question
    else:
        prompt = f"{context}\n{question}"
    response = openai.Completion.create(
        #engine="davinci",
        engine="text-davinci-003",
        prompt=prompt,
        max_tokens=1024,
        n=1,
        stop=None,
        temperature=0.5,
        frequency_penalty=0.5,
        presence_penalty=0.5,
    )
    if context is None:
        return response.choices[0].text.strip()
    else:
        return response.choices[0].text.replace(context, "").strip()
context = None

while True:
    question = input("您的问题: ")
    answer = ask(question, context=context)
    context = answer
    print("CHATGPT的回答: ", answer)

下面这个代码完全是CHATGPT写的,让它写个TK界面然后自己联网并在界面里完成对话,我只提供模型选择和APIKEY两个参数,其他都是它自己做的

import tkinter as tk
import openai

openai.api_key = "sk-p9kHK-------------------------Za7SITeFpk"
model_engine = "text-davinci-003"

class ChatGPT(tk.Frame):
    def __init__(self, master=None):
        super().__init__(master)
        self.master = master
        self.master.title("ChatGPT")
        self.pack()
        self.create_widgets()

        self.previous_response = None
        self.prompt = "请问您有什么需要帮忙的?"

    def create_widgets(self):
        self.conversation = tk.Text(self)
        self.conversation.config(state=tk.DISABLED, height=20, width=70)
        self.conversation.pack(side="top")

        self.entry = tk.Entry(self)
        self.entry.pack(side="left", expand=True, fill="both")
        self.entry.bind("<Return>", self.send_message)

        self.button = tk.Button(self)
        self.button["text"] = "发送"
        self.button["command"] = self.send_message
        self.button.pack(side="right")

    def send_message(self, event=None):
        message = self.entry.get()
        if not message:
            return
        self.entry.delete(0, tk.END)

        self.prompt += "\n" + message + "\n"
        response, _, self.previous_response = generate_response(self.prompt, model_engine, self.previous_response)
        self.prompt += response

        self.conversation.config(state=tk.NORMAL)
        self.conversation.insert(tk.END, "你:" + message + "\n", "bold")
        self.conversation.insert(tk.END, "ChatGPT:" + response + "\n\n")
        self.conversation.tag_configure("bold", font=("TkDefaultFont", 10, "bold"))
        self.conversation.config(state=tk.DISABLED)

def generate_response(prompt, model_engine, previous_response=None):
    response = openai.Completion.create(
        engine=model_engine,
        prompt=prompt,
        temperature=0.7,
        max_tokens=1024,
        n=1,
        stop=None,
        frequency_penalty=0.5,
        presence_penalty=0.5,
     
       
 
  
    )

    return response.choices[0].text, response.choices[0].finish_reason, response.choices[0].index

root = tk.Tk()
app = ChatGPT(master=root)
app.mainloop()

在这里插入图片描述

我觉得只要说的明白,会DEBUG帮它排除错误的话,是可以快速生产应用代码的,就是多少都要改一点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值