首页 > 编程语言 >Python+ChatGPT制作一个AI实用百宝箱

Python+ChatGPT制作一个AI实用百宝箱

时间:2023-03-14 15:33:06浏览次数:39  
标签:百宝箱 Python st AI user query ChatGPT response

ChatGPT 最近在互联网掀起了一阵热潮,其高度智能化的功能能够给我们现实生活带来诸多的便利,可以帮助你写文章、写报告、写周报、做表格、做策划甚至还会写代码。只要与文字相关的工作,它几乎都能给出一份满意的答卷。

 

一、注册OpenAI

首先需要注册OpenAI,这样就可以使用ChatGPT

 

 

 

二、搭建网站及其框架

那么这里我们需要用到这几个库,用pip命令来下载

 
# 安装streamlit和openai
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple streamlit
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple streamlit_option_menu
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple openai

那么首先网页的左侧有一个工具栏,其中罗列了一系列的功能,我们这里简单的囊括了几个,包括了“简介”、“AI聊天”、“AI绘画”,大家感兴趣的后期可以继续往里面添加,例如“AI配音”,代码如下

with st.sidebar:
    choose = option_menu("工具栏", ["简介","AI聊天", "AI绘画"],
                         icons=['house', 'person lines fill', 'app-indicator'],
                         menu_icon="list", default_index=0,
                         styles={
                             "container": {"padding": "5!important", "background-color": "#fafafa"},
                             "icon": {"color": "orange", "font-size": "25px"},
                             "nav-link": {"font-size": "16px", "text-align": "left", "margin": "0px",
                                          "--hover-color": "#eee"},
                             "nav-link-selected": {"background-color": "#24A608"},
                         }
                         )

 

那么在“简介”这一栏当中,顾名思义就是对该网页简单的介绍,我们简单的写一些介绍,代码如下

 

 
if choose == "简介":
    col1, col2 = st.columns([0.8, 0.2])
    with col1:  # To display the header text using css style
        st.markdown(""" <style> .font {
            font-size:35px ; font-family: 'Cooper Black'; color: #FF9633;} 
            </style> """, unsafe_allow_html=True)
        st.markdown('<p class="font">About the Creator</p>', unsafe_allow_html=True)
    with col2:  # To display brand log
        logo = Image.open("wechat_logo.jpg")
        st.image(logo, width=130)
      
    st.markdown('**AI百宝箱,里面集成了各种工具,欢迎使用**')

  

展示出来的效果如下

 

 

三、AI聊天机器人

那么首先我们需要在个人设置里面去获取一个秘钥,

 

然后选择一个模型,这里我们选择text-davinci-003模型,相比其他而言,性能更好,然后我们调用OpenAI里面的方法来生成回答

def ChatGPT(user_query):
    completion = openai.Completion.create(
        engine=model_engine,
        prompt=user_query,
        max_tokens=1024,
        n=1,
        temperature=0.5,
    )
    response = completion.choices[0].text
    return response

然后我们调用该函数结合streamlit当中的输入框,代码如下

elif choose == "AI聊天":
    st.title("AI聊天机器人")
    # 设置密匙
    model_engine = "text-davinci-003"

    def ChatGPT(user_query):
        completion = openai.Completion.create(
            engine=model_engine,
            prompt=user_query,
            max_tokens=1024,
            n=1,
            temperature=0.5,
        )
        response = completion.choices[0].text
        return response

    user_query = st.text_input("在这里输入问题,回车查询", "Python是什么?")
    if user_query != ":q" or user_query != "":
        # 将问题提交给ChatGPT, 返回结果
        response = ChatGPT(user_query)
        st.write(f"{response}")

四、AI绘画机器人

 

而在“AI绘画”的模块中,代码逻辑也是相类似的,这边需要调用与绘画相关的API,代码如下

def image_generate(user_demand):
    completion = openai.Image.create(
        prompt=user_demand,
        n=2,
        size="1024x1024"
    )
    response = completion.get("data")
    return response[0].get("url")

 

最后就可以在终端运行下面的代码了,

streamlit run example.py

我们在浏览器中打开页面,例如我们点击进入“AI聊天”这个模块,我们可以看到右上角处于RUNNING的状态,表示正在运行中,等会儿之后就能看到结果

 

 

 

而点击进入“AI绘画”这个模块,例如想要绘制可爱的猫咪,我们也能看到如下的结果

 

 

 

 

标签:百宝箱,Python,st,AI,user,query,ChatGPT,response
From: https://www.cnblogs.com/liuliumei/p/17215065.html

相关文章

  • Intel AI Conference
    2022.11.24这场由英特尔举办、面向AI软硬件开发者和技术生态打造的年度盛会——"智能算力AI破局”2022英特尔AI开发者大会成功举办。英特尔携手其一众人工智能领域合作......
  • python发送邮件
    importsmtplibfromemail.headerimportHeaderfromemail.mime.textimportMIMETextfromemail.mime.multipartimportMIMEMultipartMAIL={"from":'2547......
  • Baidu Cloud Intelligence Summit
    2022.12.27智能计算的发展为人工智能推动实体经济数智化升级提供算力支撑,AI安全的兼程并进更是支撑我国科技自立自强、实现高质量发展的必经之路,百度智能云与中国电子技术......
  • 窗口的python代码实现
    importtkinterfromtkinterimport*window=tkinter.Tk()window.geometry('1000x800+300+300')window.title('SSH连接器')window.config(bg='grey')label=tkinter.Label(w......
  • [python]运行脚本报错:ModuleNotFoundError: No module named 'bs4'
    [python]运行脚本报错:ModuleNotFoundError:Nomodulenamed'bs4' >pythonmain.py Traceback(mostrecentcalllast):File"main.py",line3,in<module>from......
  • Pcd可视化_根据 intensity 为点云着色_open3d-python
    反射强度据激光测量原理得到的点云,包括三维坐标(XYZ)和激光反射强度(Intensity)。根据摄影测量原理得到的点云,包括三维坐标(XYZ)和颜色信息(RGB)取值范围有0~255和0~6......
  • python获取用户登录ip
    importsocketdefip_check():  s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)  s.connect(('8.8.8.8',80))  ip=s.getsockname()[0]  ......
  • rails header 传参数开发环境正式环境区别
    rails开发环境api传递access_token参数  在controller用 request.headers["HTTP_ACCESS_TOKEN"]可获取到值。但是在生产环境却获取不到值了。原因是生产环境head......
  • python 爬虫ip代理
    新建proxy_list.txt文本,一行一个ip代理ip地址,必要情况下可以加上端口号importrequestsurl='www.920vip.net'headers={'User-Agent':"Mozilla/5.0(WindowsNT6.1......
  • 【服务器数据恢复】服务器断电导致RAID5卡硬件损坏,无法进入操作系统的数据恢复
    服务器数据恢复环境:某品牌ProLiantDL系列服务器,6块SAS硬盘组成RAID5磁盘阵列,WINDOWSSERVER操作系统,存储了企业的内部文件。服务器故障&分析:服务器在发生故障前有过......