conversation_history.append(ai_message)
print(f"AI:{ai_reply}" except Exception as e:
print("对话出错:" e)
break
```
看,这样就有了一个可以连续聊天的简易命令行机器人了!
另外,调用API时还有一些参数可以调整,让AI的回答更符合你的期望:
*`temperature`(温度):这个值在0到2之间。简单理解,它控制着AI的“想象力”。设为0,AI的回答会非常确定、保守,同样的问题每次回答可能都差不多;调高到0.8或1,它的回答会更随机、更有创意,但也可能更“跑偏”。写代码、查事实时建议调低(比如0.2),写故事、想点子时可以调高。
*`max_tokens`:这个参数限制AI单次回复的最大长度(可以粗略理解为字数)。设得太小,回答可能被截断;设得太大,可能会消耗更多资源。根据你需要调整就好。
走到这儿,基本的接入你已经掌握了。但根据我的经验,还有几点心得想跟你分享,或许能让你少走弯路:
第一,关于免费额度与用量。OpenAI会给新账号提供一些免费的API调用额度,这非常棒,让我们可以免费尝鲜。但要注意,这个额度不是无限的,而且调用越复杂的模型(比如GPT-4),消耗得越快。我的建议是,在开发测试阶段,可以先使用 `gpt-3.5-turbo` 这个模型,它速度快、成本低,对于大多数入门需求完全够用。同时,一定要养成在OpenAI后台查看使用情况和余额的习惯,避免意外超支。
第二,关于网络问题。由于一些原因,在国内直接调用OpenAI的API可能会遇到连接超时或失败的情况。一个常见的解决方法是,为你的Python程序配置网络代理。可以通过设置环境变量来实现,就像这样(具体代理地址需要你自己有可用的服务):
```python
import os
os.environ["HTTP_PROXY"] = "http://127.0.0.1:7890".environ["TPS_PROXY"] = "http://127.0.0.1:7890"把这部分代码加在设置API Key之前,往往就能解决问题。
第三,关于代码的健壮性。网络请求总有可能失败,所以像我们示例里那样,用 `try...except` 把核心的API调用代码包起来,是一个好习惯。这样即使临时网络不稳,你的程序也不会直接崩溃,而是可以优雅地处理错误,比如提示用户重试。
最后,我想说说它的可能性。一旦你掌握了这个基本的方法,能做的事情就太多了。绝不仅仅是做个聊天机器人。你可以让它帮你:
*自动生成周报、邮件初稿。
*给你的代码添加注释,或者解释一段看不懂的代码。
*分析一堆用户反馈,提取关键词和情感倾向。
*甚至结合其他工具,做成一个能自动整理会议纪要、能帮你智能回复邮件的自动化小工具。
所以说,接入ChatGPT,其实是为你的Python程序打开了一扇通往“智能化”的大门。门槛并没有想象中那么高,对吧?关键在于动手去试。从今天这个最简单的“Hello World”对话开始,一步步添加功能,探索参数,你很快就能打造出属于自己的、充满想象力的AI应用。编程的乐趣,不就在于此吗?
