翼度科技»论坛 编程开发 python 查看内容

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

13

主题

13

帖子

39

积分

新手上路

Rank: 1

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

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

 
 
 二、搭建网站及其框架

那么这里我们需要用到这几个库,用pip命令来下载
 
  1. # 安装streamlit和openai
  2. pip install -i https://pypi.tuna.tsinghua.edu.cn/simple streamlit
  3. pip install -i https://pypi.tuna.tsinghua.edu.cn/simple streamlit_option_menu
  4. pip install -i https://pypi.tuna.tsinghua.edu.cn/simple openai
复制代码
那么首先网页的左侧有一个工具栏,其中罗列了一系列的功能,我们这里简单的囊括了几个,包括了“简介”、“AI聊天”、“AI绘画”,大家感兴趣的后期可以继续往里面添加,例如“AI配音”,代码如下
  1. with st.sidebar:
  2.     choose = option_menu("工具栏", ["简介","AI聊天", "AI绘画"],
  3.                          icons=['house', 'person lines fill', 'app-indicator'],
  4.                          menu_icon="list", default_index=0,
  5.                          styles={
  6.                              "container": {"padding": "5!important", "background-color": "#fafafa"},
  7.                              "icon": {"color": "orange", "font-size": "25px"},
  8.                              "nav-link": {"font-size": "16px", "text-align": "left", "margin": "0px",
  9.                                           "--hover-color": "#eee"},
  10.                              "nav-link-selected": {"background-color": "#24A608"},
  11.                          }
  12.                          )
复制代码
 
那么在“简介”这一栏当中,顾名思义就是对该网页简单的介绍,我们简单的写一些介绍,代码如下
 
 
  1. if choose == "简介":
  2.     col1, col2 = st.columns([0.8, 0.2])
  3.     with col1:  # To display the header text using css style
  4.         st.markdown("""  """, unsafe_allow_html=True)
  5.         st.markdown('<p >About the Creator</p>', unsafe_allow_html=True)
  6.     with col2:  # To display brand log
  7.         logo = Image.open("wechat_logo.jpg")
  8.         st.image(logo, width=130)
  9.       
  10.     st.markdown('**AI百宝箱,里面集成了各种工具,欢迎使用**')
复制代码
  
展示出来的效果如下

 
 
三、AI聊天机器人

那么首先我们需要在个人设置里面去获取一个秘钥,
 然后选择一个模型,这里我们选择text-davinci-003模型,相比其他而言,性能更好,然后我们调用OpenAI里面的方法来生成回答
  1. def ChatGPT(user_query):
  2.     completion = openai.Completion.create(
  3.         engine=model_engine,
  4.         prompt=user_query,
  5.         max_tokens=1024,
  6.         n=1,
  7.         temperature=0.5,
  8.     )
  9.     response = completion.choices[0].text
  10.     return response
复制代码
然后我们调用该函数结合streamlit当中的输入框,代码如下
  1. elif choose == "AI聊天":
  2.     st.title("AI聊天机器人")
  3.     # 设置密匙
  4.     model_engine = "text-davinci-003"
  5.     def ChatGPT(user_query):
  6.         completion = openai.Completion.create(
  7.             engine=model_engine,
  8.             prompt=user_query,
  9.             max_tokens=1024,
  10.             n=1,
  11.             temperature=0.5,
  12.         )
  13.         response = completion.choices[0].text
  14.         return response
  15.     user_query = st.text_input("在这里输入问题,回车查询", "Python是什么?")
  16.     if user_query != ":q" or user_query != "":
  17.         # 将问题提交给ChatGPT, 返回结果
  18.         response = ChatGPT(user_query)
  19.         st.write(f"{response}")
复制代码
四、AI绘画机器人

 而在“AI绘画”的模块中,代码逻辑也是相类似的,这边需要调用与绘画相关的API,代码如下
  1. def image_generate(user_demand):
  2.     completion = openai.Image.create(
  3.         prompt=user_demand,
  4.         n=2,
  5.         size="1024x1024"
  6.     )
  7.     response = completion.get("data")
  8.     return response[0].get("url")
复制代码
 
最后就可以在终端运行下面的代码了,
  1. streamlit run example.py
复制代码
我们在浏览器中打开页面,例如我们点击进入“AI聊天”这个模块,我们可以看到右上角处于RUNNING的状态,表示正在运行中,等会儿之后就能看到结果

 
 
 而点击进入“AI绘画”这个模块,例如想要绘制可爱的猫咪,我们也能看到如下的结果
 
 
 
 
来源:https://www.cnblogs.com/liuliumei/p/17215065.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具