首页 > 其他分享 >人工智能 | 基于ChatGPT开发人工智能服务平台

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

时间:2024-09-18 18:52:13浏览次数:12  
标签:__ 人工智能 messages 面试 openai result 服务平台 msg ChatGPT

简介

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

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

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

智能平台的使用价值

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

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

实现思路

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

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

需求功能设计

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

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

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

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

技术架构设计

人工智能 | 基于ChatGPT开发人工智能服务平台_技术架构_02

技术选型

  • 因为功能比较简单,所以技术架构可选择任意的前后端技术。
  • 示例使用 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=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. 通过前后端开发的技术,实现一个基本的模拟面试平台。

标签:__,人工智能,messages,面试,openai,result,服务平台,msg,ChatGPT
From: https://blog.51cto.com/u_15605684/12047479

相关文章

  • 小型企业如何利用人工智能的生产力
    尽管生产力低下是一个长期存在的问题,但最近严峻的经济逆风加剧了这一问题,企业清算数量同比增长了19%。 Xero的报告《小企业生产力:趋势、影响和战略》反映了这些宏观经济变化,显示2023年新西兰小企业生产力与2022年水平相比下降了6.1%,目前远低于该国疫情前的范围。如果劳动生......
  • Springboot基于HTML5+CSS3的信息化农村综合服务平台690g7
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景与意义随着信息技术的飞速发展,信息化已成为推动农村经济社会发展的重要力量。构建基于HTML5+CSS3的信息化农村综合服务平台,旨在利用现......
  • 人工智能生成合成内容最详细标识方法
        生成式人工智能已成为继移动互联网技术之后最大的一波技术浪潮,同时也带来了新的安全风险和挑战。随着人工智能技术的发展,人工智能生成合成内容日益逼真,网络传播内容是否由人工智能生成合成难以分辨,社会上已出现多起利用生成合成内容传播虚假新闻、引发社会舆情,或是......
  • 文心一言 VS 讯飞星火 VS chatgpt (349)-- 算法导论23.2 8题
    八、Borden教授提出了一个新的分治算法来计算最小生成树。该算法的原理如下:给定图,将划分为两个集合和,使得和的差最多为1。设为端点全部在中的边的集合,为端点全部在中的边的集合。我们递归地解决两个子图和的最小生成树问题。最后,在边集合中选择横跨切割和的最小权重的边来将求出的......
  • 人工智能时代,程序员如何保持核心竞争力?
    随着AIGC(如chatgpt、midjourney、claude等)大语言模型接二连三的涌现,AI辅助编程工具日益普及,程序员的工作方式正在发生深刻变革。有人担心AI可能取代部分编程工作,也有人认为AI是提高效率的得力助手。面对这一趋势,程序员应该如何应对?是专注于某个领域深耕细作,还是广泛学习以适......
  • 人工智能生成合成内容标识办法(征求 意见稿)发布
    当前国家发布的关于人工智能生成合成内容标识的法律法规有:《中华人民共和国网络安全法》、《互联网信息服务算法推荐管理规定》、《互联网信息服务深度合成管理规定》、《生成式人工智能服务管理暂定办法》等。征求意见稿2024年9月14日,国家网信办发布关于《人工智能生成合成内容......
  • 基于nodejs+vue贵港高铁站志愿者活动服务平台[程序+论文+开题] 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着高铁网络的不断扩展与普及,贵港高铁站作为区域交通枢纽,其日常运营与旅客服务质量日益受到社会各界的关注。志愿者活动作为提升车站服务品质、增进社会和......
  • unity人工智能游戏、源码、教程(中秋特别版),完全免费和开源
    任何人不要和我说话,我不想跟任何人说话,因为我对现实世界的人类不感兴趣。谁跟我说话,我都不会理睬的。(一)游戏简介三维虚拟世界的人工智能对话。完全免费、完全开源、完整详细、通俗易懂。我把游戏、游戏源码、教程(三合一)放到了夸克网盘:链接:https://pan.quark.cn/s/65e22d51c1b......
  • 2024.9.1_ChatGPT镜像列表
    收集自网络,更新于2024.9.1ChatGPT国内镜像ChatGPT外国镜像......
  • 人工智能生成合成内容标识方法解读
        随着生成式人工智能技术快速发展,利用人工智能技术生成或合成文字、图像、音乐、视频、3D等数字内容成为网络空间内容的主要生产方式,不断为数字经济、产业发展甚至社会变革注入强大动力。然而,伴随内容生成合成门槛的不断降低,新技术的滥用也对网络空间治理提出了更大......