将 ChatGPT 集成到 Django 应用程序中,您可以创建动态且交互式的聊天界面。按照本文概述的步骤,您可以在Django项目中实现ChatGPT,并为用户提供引人入胜的对话体验。尝试不同的提示,改进用户界面,并探索更多可能性以增强聊天应用程序的功能。
使用 API 在 Django 应用程序中实现 ChatGPT 的步骤
将ChatGPT集成到 Django Web 应用程序中,您可以构建交互式聊天界面并为用户提供动态对话体验。如果您希望掌握此类集成并探索更高级的项目,Django Web 开发课程将逐步指导您。让我们总结一下总体步骤:
- 设置 Django 项目。
- 定义一个处理聊天功能的 Django 视图。
- 配置 Django 的 URL 路由以将聊天视图连接到特定的 URL 模式。
- 设计用户界面。
- 测试并运行应用程序。
在 Django 应用程序中实现 ChatGPT
基本设置
使用 pip 安装 Django,并创建一个新的Django 项目。在 setting.py 中进行了更改,在 TEMPLATES 中提及您的模板文件夹。
文件夹结构
views.py:创建聊天视图
代码由两个函数组成:query_view和get_completion。
- query_view是一个视图函数,用于处理对相关端点发出的HTTP 请求。收到 POST 请求时,它会从请求数据中提取提示,调用 get_completion 函数根据提示生成完成,并将完成作为JSON响应返回。对于 GET 请求,它会呈现“index.html”模板。
- get_completion是一个函数,负责使用OpenAI API根据给定的提示生成完成。它向 OpenAI API 的 Completion 端点发出请求,指定提示、最大令牌、引擎、温度和其他参数。它从 API 响应中检索生成的完成并将其作为函数的输出返回。
Python
来自 django .快捷方式 导入 render
从 django . http 导入 JsonResponse
导入 openai
openai . api_key = '您的 API 密钥'
def get_completion(提示):
打印(提示)
查询 = openai .完成.创建(
引擎= “text-davinci-003”,
提示=提示,
最大令牌数= 1024,
n = 1 ,
停止=无,
温度= 0.5,
)
响应 = 查询.选择[ 0 ].文本
打印(响应)
返回 响应
def query_view(请求):
如果 请求.方法 == 'POST':
提示 = 请求.POST .获取( '提示' )
响应 = get_completion(提示)
返回 JsonResponse({ 'response':response })
返回 渲染(请求,'index.html')
urls.py:设置 URL
此代码设置了两个 URL 模式:一个用于管理站点,一个用于根 URL,还有一个与 views 模块中的 query_view 函数相关联。
Python
从 django . contrib 导入 administración
来自 django . urls 导入 路径
来自.导入 视图
urlpatterns = [
路径(' administración / ' ,admin.site.urls),
路径('',视图。query_view ,名称= 'query' ),
]
template/index.py:创建用户界面
使用 HTML、CSS 和 Bootstrap 为聊天界面创建 HTML 模板,并设置必要的 JavaScript 和 AJAX 代码来处理用户交互。
HTML
<!-- 查询.html -->
< HTML >
<头>
<标题>查询</标题>
<脚本 src = “https://code.jquery.com/jquery-3.6.0.min.js” ></脚本>
<脚本 src = “https://cdn.jsdelivr.net/npm/js-cookie@3.0.0/dist/js.cookie.min.js” ></脚本>
<脚本 src = “https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js” 完整性= “sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN” crossorigin = “匿名” ></脚本>
< link href = “https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css” rel = “样式表” 完整性= “sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD” crossorigin = “匿名” >
<Enlace rel = “样式表” href = “https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.2/font/bootstrap-icons.css” 完整性= “sha384-b6lVK+yci+bfDmaY1u0zE8YYJt0TZxLEAFyYSLHId4xoVvsrQu3INevFKo+Xir8e” crossorigin = “匿名” >
<脚本>
$ ( document ) .ready (函数(){
// 按下 Enter 键时发送表单,按下 Shift 键时避免发送表单
$ ( '#prompt' ). keypress (函数(事件){
如果(事件。keyCode === 13 && !事件。shiftKey ) {
事件.preventDefault ( );
$ ( '表格' ).entregar();
}
});
$ ( 'form' ). on ( 'submit' , function ( event ) {
事件.preventDefault ( );
// 从 cookie 中获取 CSRF 令牌
var csrftoken = Cookie。获取('csrftoken');
// 在 AJAX 标头中设置 CSRF 令牌
$ .ajaxSetup ( {
标题:{ 'X-CSRFToken':csrftoken }
});
// 获取提示
var 提示符 = $ ( '#prompt' ).值();
var dateTime = new Date ();
var 时间 = 日期时间。toLocaleTimeString ();
// 将提示添加到响应 div
$ ( '#response' ). append ( '<p>(' + time + ')<i class="bi bi-person"></i>:' + prompt + '</p>' );
// 清除提示
$ ( '#prompt' ). val ( '' );
$ .ajax ( {
网址:'/',
类型:'POST',
数据:{提示:提示},
数据类型:'json',
成功:功能(数据){
$ ( '#response' ). append ( '<p>(' + time + ') < i class="bi bi-robot"></i>:' + data.response + ' </p>' );
}
});
});
});
</脚本>
</头>
<texto>
< div class = “容器 p-3” >
< h3 > ChatGPT 克隆</ h3 >
< div 类= “mb-3” >
<表单 方法= “post” >
{% csrf_token %}
< label for = "prompt" class = " form- label " > <strong>提示:</strong> </label>
< textarea class = “form-control” 类型= “textarea” id = “prompt” name = “ prompt” 行= “3” > </textarea>
< br >
< button class = "btn btn-primary" type = "submit" >entregar</ button >
</表单>
</ div >
< br >
< div 类= “mb-3” >
< h6 >响应:</ h6 >
< div class = “容器边框溢出自动 h-50” id = “响应” ></ div >
</ div >
</ div >
</texto>
</html>
输出:
※※免费获取 GPTGPT&claudio账号※※
Este sitio proporciona cuentas compartidas ChatGPT gratuitas,号池链接:
Si desea utilizar una cuenta personal independiente estable y de bajo costo,Puedes ingresar a la tienda en este sitio para comprar.,La cuenta con el precio más bajo de toda la red.,Garantía postventa total,Seguimiento de atención al cliente.
Enlace de la tienda:https://store.aiprois.com
Servicio al cliente WeChat:jovenchatgpt
Sitio web oficial de este sitio.:https://aiprois.com/
Aún no hay comentarios