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

简介

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 osfrom pathlib import Pathimport openaiimport yamlfrom 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=xxx        return 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. 通过前后端开发的技术,实现一个基本的模拟面试平台。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值