前面已经完成了Python ChatGPT应用的运行环境配置,并对提示内容和请求参数进行了分析和调试。在本节中,将整体介绍示例应用的执行流程,并进一步介绍Python openai库的重要接口,以及讨论在其他系统中集成ChatGPT的方式。
Python示例应用的文件结构如图4-7所示。API Key信息存储在.env文件中。app.py脚本的功能包括构建提示内容、发起请求和解析结果。templates文件夹中包含前端页面的模板文件。为了全面理解此示例应用,可以从以下三个方面进行深入。
1.读取API Key的方式
最开始在app.py中的代码如下所示,首先导入要使用的库,然后使用os.getenv函数读取API Key。
图4-7 Python示例应用的文件结构
2.配置参数和发起请求
app.py文件中的index函数用于构建请求参数、发起请求、解析结果,generate_prompt函数用于构建提示内容。index函数的完整代码如下,并添加了中文注释。
3.前端页面
示例应用源代码目录中的templates文件夹中包含了前端页面的index.html文件。下面是该文件的源代码,并添加了相应的注释。读者可以根据注释的提示修改文件内容,并同时调整generate_prompt函数中的提示内容,以构建符合自己需求的ChatGPT应用。
Python openai库是ChatGPT API的封装,示例应用中的Completion类对应的API端点是“/v1/completions”。在本节中,将介绍Python openai库中常用的类,读者可以结合3.1.3节的内容来深入理解ChatGPT API的工作原理,这将有助于读者更好地理解和应用Python openai库。
1.模型信息类
Python openai库中与模型相关的类定义在“model.py”文件中,下面是具体的类定义代码。Model类中的list方法和retrieve方法可以用于获取模型的信息,这两个方法都是从父类ListableAPIResource继承而来的。这些类的定义提供了方便的接口来管理和操作ChatGPT模型。
(1)list方法
list方法对应的API端点是“/v1/models”,其功能是列出当前可用的模型并提供每个模型的基本信息。以下代码演示了如何使用list函数。
(2)retrieve方法
retrieve方法对应的API端点是“/v1/models/{model}”,其功能是查询特定模型实例并提供有关模型的基本信息。以下代码演示了如何使用retrieve函数。
2.提示补充类
openai库中的Completion类用于发送提示内容请求,对应的API端点是“/v1/completions”。其中,Completion类最重要的方法是create,用于创建提示并设置相关参数。以下代码演示了如何使用create函数。
3.提示对话类
openai库中的ChatCompletion类用于发送对话内容请求,对应的API端点是“/v1/chat/completions”。其中,ChatCompletion类最重要的方法是create,用于创建对话内容并设置相关参数。以下代码演示了如何使用create函数。
通过示例应用,我们根据ChatGPT的集成方式进行了一些有趣的创意工作,并为我们提供了思考,如何将ChatGPT集成到其他应用中的方向。在本节中,我们将讨论以下两种ChatGPT的集成模式。
1.集成应用的多样性
示例应用虽然规模较小,但展示了基于ChatGPT的各种应用场景的潜力,特别是将ChatGPT与一些生产力工具集成以提高生产效率。实际上,已经有一些工作在这方面展开,例如,将ChatGPT集成到办公软件中,将ChatGPT与AI绘图软件进行集成等。这些尝试进一步拓宽了ChatGPT的应用领域,为用户带来了更多的创造力和效率。
2.重要工作内容
通过解析示例应用代码,我们可以发现构建ChatGPT应用只需要很少的开发技能,主要是掌握HTTP请求和JSON格式数据的构造与处理。整个处理过程都是按部就班进行的。其中,关键的工作是组织好“提示内容”,这将是我们在下一章中要学习的重要内容。