ChatGPT初体验step by step:ChatGPT解决人类提出的数理逻辑问题,Python编程实践

Posted zhangphil

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ChatGPT初体验step by step:ChatGPT解决人类提出的数理逻辑问题,Python编程实践相关的知识,希望对你有一定的参考价值。

ChatGPT初体验step by step:ChatGPT解决人类提出的数理逻辑问题,Python编程实践

如果已有有效的open ai的api key,则跳过本文(1)(2)(3)(4),直接从(5)开始。

(1)要登录openai获取api key,在openai官网登录自己账号:

https://chat.openai.com/auth/loginhttps://chat.openai.com/auth/login

(2)登录成功后点击 右上角的 Personal,然后View API keys

(3)如果SECRET KEY里面没有,创建SECRET KEY,也就是 api key:

(4)创建成功后,把api key复制保存好:

 这里openai提醒用户,请务必保存好api key,一旦关闭这个弹窗,以后无法再看到 api key,复制,保存api key到一个文件,以备后续使用。

(5)以下是python编程调用chatgpt自动获取答案。首先需要安装openai库。

pip install openai

(6)在Python里面写chatgpt代码:

把第(4)步获取的API key填写进来

import openai

# 设置你的 API key
openai.api_key = "sk-gj*****************************************"


def chat_test():
    question = '怎么解决android内存泄漏?'

    # 使用 GPT-3 model
    completion = openai.Completion.create(
        engine="text-davinci-002",
        prompt=question,  # 要问的问题
        max_tokens=1024,
        temperature=0.5,
    )

    # 回复
    answer = completion.choices[0].text

    # 打印
    print('----------')
    print('问题', question)
    print('答案')
    print(answer)


if __name__ == '__main__':
    chat_test()

奇迹时刻到了,来看看chatgpt给出的答案:

----------
问题 怎么解决android内存泄漏?
答案


android内存泄漏最常见的原因是:持有Activity或者其他组件实例引用导致的,这个引用是非必要的,可以放弃,或者是静态引用。

比如:

public class MyActivity extends Activity private static MyActivity activity; public void onCreate(Bundle savedInstanceState) activity = this; public static MyActivity getInstance() return activity;

MyActivity类持有了一个静态的引用,这个引用是非必要的,可以放弃。

比如:

public class MyActivity extends Activity private MyHelper helper; public void onCreate(Bundle savedInstanceState) helper = new MyHelper(this);

MyActivity类持有了一个非静态的实例引用,这个引用是非必要的,可以放弃。

针对这两种情况,可以这样处理:

比如:

public class MyActivity extends Activity private static MyActivity activity; public void onCreate(Bundle savedInstanceState) activity = this; public static MyActivity getInstance() return activity;

改成:

public class MyActivity extends Activity private static WeakReference<MyActivity> activity; public void onCreate(Bundle savedInstanceState) activity = new WeakReference<MyActivity>(this); public static MyActivity getInstance() return activity.get();

比如:

public class MyActivity extends Activity private MyHelper helper; public void onCreate(Bundle savedInstanceState) helper = new MyHelper(this);

改成:

public class MyActivity extends Activity private WeakReference<MyHelper> helper; public void onCreate(Bundle savedInstanceState) helper = new WeakReference<MyHelper>(new MyHelper(this));

有时候,内存泄漏的原因不是一开始就可以看到的,比如:

public class MyActivity extends Activity private MyHelper helper; public void onCreate(Bundle savedInstanceState) helper = new MyHelper(this); public void onDestroy() helper.destroy();

MyHelper类的destroy方法里面持有了MyActivity的引用,这个引用是非必要的,可以放弃,可以改成:

public class MyActivity extends Activity private WeakReference<MyHelper> helper; public void onCreate(Bundle savedInstanceState) helper = new WeakReference<MyHelper>(new MyHelper(this)); public void onDestroy() helper.get().destroy();

这样,MyActivity类和MyHelper类就不会互相持有引用了,就不会产生内存泄漏的问题了。

还有一种情况:

public class MyActivity extends Activity private MyHelper helper; public void onCreate(Bundle savedInstanceState) helper = new MyHelper(this); public void onDestroy() helper.destroy();

MyHelper类的destroy方法里面持有了MyActivity的引用,这个引用是非必

如果把问题换成2+3等于多少?

2+3等于多少?

chatgpt的回复是:

 AI正确算出了人类提出的数学问题。在这里,chatgpt表现出两个卓越能力:(1)理解人类的语言能力。(2)理解人类语言并做出数理逻辑计算的能力。

以上是关于ChatGPT初体验step by step:ChatGPT解决人类提出的数理逻辑问题,Python编程实践的主要内容,如果未能解决你的问题,请参考以下文章

让ChatGPT帮我写shell脚本, 结局很感人

step by step to OpenFOAM:step1

深度优先搜索思想初体验

Microsoft SQL Server 2008 MDX Step by Step中关于MDX Step-by-Step.abf损坏文件的处理

ChatGPT的了解与初体验

斑马难题Step by Step