人工智能 | 基于ChatGPT开发人工智能服务平台

news/2024/9/22 15:56:54/

简介

ChatGPT 在刚问世的时候,其产品形态就是一个问答机器人。而基于ChatGPT的能力还可以对其做一些二次开发和拓展。比如模拟面试功能、或者智能机器人功能。

模拟面试功能包括个性化问题生成、实时反馈、多轮面试模拟、面试报告。

智能机器人功能提供24/7客服支持、自然语言处理、任务自动化、多渠道支持和数据分析与报告。

智能平台的使用价值

而通过人工智能,可以将以上的流程自动化的实现。可以帮助用户:

  1. 提升面试准备效果
  2. 提高客户服务效率

实现思路

如果要实现一个初步的模拟面试平台,那么会分为以下几个步骤完成:

  1. 需求功能设计。
  2. 技术架构设计
  3. 技术选型。
  4. 技术实现。

需求功能设计

模拟面试平台的功能可复杂可简单,当然最基本的功能需求需要具备:

  1. 提问,模拟面试官的角色向用户提出下一个问题。
  2. 接受回复,需要有一个输入,能够接收用户的输入的回复信息。

所以基于以上需求,我们的界面设计应该是:

技术架构设计

技术选型

  • 因为功能比较简单,所以技术架构可选择任意的前后端技术。
  • 示例使用 Flask + Template + HTML/CSS 技术

技术实现

环境准备

前端界面实现

<!DOCTYPE html>
<head><title>霍格沃兹测试开发学社模拟面试系统</title><link rel="stylesheet" href="{{ url_for('static', filename='main.css') }}"/>
</head><body>
<img src="{{ 'https://ceshiren.com/uploads/default/original/1X/809c63f904a37bc0c6f029bbaf4903c27f03ea8a.png' }}"class="icon"/>
<h3>霍格沃兹测试开发学社模拟面试系统</h3>
{% if result %}
<div class="result">{{ result }}</div>
{% endif %}
<form action="/" method="post"><input type="text" name="msg" placeholder="请先说你好,打个招呼" required/><input type="submit" value="开始面试"/>
</form>
</body>

后端服务实现

获取 token 相关的基本配置信息。

import os
from pathlib import Path
import openai
import yaml
from flask import Flask, redirect, render_template, request, url_for# 通过 yaml 配置文件获取 openai 配置
conf_path = Path(__file__).parent.joinpath('conf/dev.yaml')
with open(conf_path) as f:conf: dict = yaml.safe_load(f)
# 通过环境变量设置 openai 的 token 和代理地址
os.environ["OPENAI_API_KEY"] = conf.get("OPENAI_API_KEY")
os.environ["OPENAI_BASE_URL"] = conf.get("OPENAI_BASE_URL")通过变量message记录和大模型的历史交互信息。
# 发送的历史消息
messages = []从前端获取到用户的输入信息,并将从大模型获取到的响应展示到界面上。- 如果是第一次,则使用预制的prompt。- 不是第一次,则接受响应信息。
# 创建 flask 实例
app = Flask(__name__)# 定义路由
@app.route("/", methods=("GET", "POST"))
def index():if request.method == "POST":# 获取前端的用户输入信息user_msg = request.form["msg"]# 定义要发送给 openai 接口的信息if messages:# 有上下文历史messages.append({'role': 'user',# 把用户输入的信息直接发给 openai'content': user_msg})else:# 第一次初始化messages.append({'role': 'user',# 把最初的提示词发送给 openai'content': generate_prompt(user_msg)})# 打印创建好的信息print(f"messages: {messages}")# 调用 openai 自带的方法,向 openai 服务器发出请求,并获取响应response = openai.chat.completions.create(model='gpt-3.5-turbo',messages=messages,temperature=0)# 从响应内容中提取 openai 回复的内容answer = response.choices[0].message.content# 打印回复内容print(f"answer: {answer}")# 刷新首页,返回答案信息# result 参数会拼接在 index 视图函数对应路由的后方# http://xx/?result=xxxreturn redirect(url_for("index", result=answer))# 获取拼接在 url 中的 result 参数的值,如果没有携带 result,则 result 值为空result = request.args.get("result")print(f"result = {result}")# 第一次进入首页,result 为空,输入框上方不显示内容return render_template("index.html", result=result)def generate_prompt(msg):# 定义提示词prompt_msg = f"""你是一名软件测试工程师,你了解软件测试的技术与经验,你需要面试应聘者。我是应聘者,你会问我这个职位的面试问题。我希望你只以面试官的身份回答,一次只问一个问题,问我问题并等待我的回答。当我说结束面试的时候给出我的面试表现的评价和我的改进方向。我的输入是 {msg}"""# 返回提示词return prompt_msg启动服务
if __name__ == '__main__':app.run(debug=True)

总结

  1. 了解一个人工智能平台的基本设计思路。
  2. 通过前后端开发的技术,实现一个基本的模拟面试平台。

在这里插入图片描述

推荐学习

【霍格沃兹测试开发】7天软件测试快速入门带你从零基础/转行/小白/就业/测试用例设计实战

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (上集)

【霍格沃兹测试开发】最新版!Web 自动化测试从入门到精通/ 电子商务产品实战/Selenium (下集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(上集)

【霍格沃兹测试开发】明星讲师精心打造最新Python 教程软件测试开发从业者必学(下集)

【霍格沃兹测试开发】精品课合集/ 自动化测试/ 性能测试/ 精准测试/ 测试左移/ 测试右移/ 人工智能测试

【霍格沃兹测试开发】腾讯/ 百度/ 阿里/ 字节测试专家技术沙龙分享合集/ 精准化测试/ 流量回放/Diff

【霍格沃兹测试开发】Pytest 用例结构/ 编写规范 / 免费分享

【霍格沃兹测试开发】JMeter 实时性能监控平台/ 数据分析展示系统Grafana/Docker 安装

【霍格沃兹测试开发】接口自动化测试的场景有哪些?为什么要做接口自动化测试?如何一键生成测试报告?

【霍格沃兹测试开发】面试技巧指导/ 测试开发能力评级/1V1 模拟面试实战/ 冲刺年薪百万!

【霍格沃兹测试开发】腾讯软件测试能力评级标准/ 要评级表格的联系我

【霍格沃兹测试开发】Pytest 与Allure2 一键生成测试报告/ 测试用例断言/ 数据驱动/ 参数化

【霍格沃兹测试开发】App 功能测试实战快速入门/adb 常用命令/adb 压力测试

【霍格沃兹测试开发】阿里/ 百度/ 腾讯/ 滴滴/ 字节/ 一线大厂面试真题讲解,卷完拿高薪Offer !

【霍格沃兹测试开发】App自动化测试零基础快速入门/Appium/自动化用例录制/参数配置

【霍格沃兹测试开发】如何用Postman 做接口测试,从入门到实战/ 接口抓包(最新最全教程)


http://www.ppmy.cn/news/1528896.html

相关文章

【大模型实战篇】关于Bert的一些实操回顾以及clip-as-service的介绍

最近在整理之前的一些实践工作&#xff0c;一方面是为了笔记记录&#xff0c;另一方面也是自己做一些温故知新&#xff0c;或许对于理解一些现在大模型工作也有助益。 1. 基于bert模型实现中文语句的embedding编码 首先是基于bert模型实现中文语句的embedding编码&#xff0c;…

如何安装部署kafka

安装和部署Apache Kafka需要以下几个步骤&#xff0c;包括下载 Kafka、配置 ZooKeeper&#xff08;或者使用 Kafka 自带的 Kafka Raft 模式替代 ZooKeeper&#xff09;&#xff0c;以及启动 Kafka 服务。以下是一个但基于 Linux 的典型安装流程&#xff0c;可以根据需要改装到其…

Python基础学习(3)

目录 一&#xff0c;函数 1&#xff0c;函数的定义 2&#xff0c;函数的参数 1&#xff0c;默认值 2&#xff0c;传参 3&#xff0c;返回值 4&#xff0c;变量的作用域 5&#xff0c;函数的调用 二&#xff0c;常用数据结构 1&#xff0c;列表 列表的定义 列表的特性…

DevOps工程师的职业发展路径

DevOps工程师的职业发展路径 前言 随着云计算、微服务等技术的广泛应用&#xff0c;DevOps的概念逐渐深入人心。DevOps不仅仅是一种工具或技术&#xff0c;更是一种文化和实践。作为IT行业中需求旺盛的职位之一&#xff0c;DevOps工程师的职业发展前景十分广阔。本文将介绍De…

leetcode - 分治思想

分治 - 快排 这里快排我们统一使用 数组分三块 和 随机产生基准值的方法实现排序 数组分三块: . - 力扣&#xff08;LeetCode&#xff09; 整个思想即将数组按照基准值分为三个区间 , 具体实现: 三指针实现. 遍历指针 , 左区间右边界指针 , 右区间左边界指针 class Solutio…

RAII技术

RAII&#xff08;Resource Acquisition Is Initialization&#xff09;是C中一种重要的资源管理技术&#xff0c;由C之父Bjarne Stroustrup提出。RAII的核心思想是通过对象的生命周期来管理资源&#xff0c;即在对象的构造函数中获取资源&#xff0c;在对象的析构函数中释放资源…

【Kubernetes】常见面试题汇总(二十五)

目录 73.我们所有人都知道&#xff0c;从单片到微服务的转变解决了开发方面的问题&#xff0c;但却增加了部署方面的问题。公司如何解决部署方面的问题&#xff1f; 74.考虑一家拼车公司希望通过同时扩展其平台来增加服务器数量,公司如何有效地实现这种资源分配&#xff1f; …

bug | pycharm社区版无sciview解决办法

一个程序运行多个图&#xff0c;plt.show()一次只弹出一个独立窗口&#xff0c;必须关掉一个才能显示下一张图&#xff0c;想找sciview却发现找不到&#xff0c;本来以为是新版pycharm的问题&#xff0c;后来才发现是community版根本没有sciview…不想换专业版了&#xff0c;研…