做電商網站要服務器嗎陽東網站seo
使用OpenAI創(chuàng)建自己的AI網站
如果你還是一個OpenAI的小白,有OpenAI的賬號,但想調用OpenAI的API搞一些有意思的事,那么這一系列的教程將仔細的為你講解如何使用OpenAI的API制作屬于自己的AI網站。
使用 flask web框架快速搭建網站主體
之前我們已經調用了OpenAI的API接口請求一張"小白貓"
import openaiapi_key = "sk-e4F4owy**********************" # 此處是自己的API Key
openai.api_key = api_keyresponse = openai.Image.create(prompt = "a white siamese cat",n = 1,size = "1024x1024"
)
image_url = response['data'][0]['url']print(image_url)
今天我們將快速搭建一個簡易的網頁,在網頁里,我們輸入我們的請求,讓OpenAI為我們提供一張照片。
- 制作自己的AI網站,我們就需要使用python的web框架了。這里我們用到了flask框架。python常用的web框架主要是flask和Django。至于兩個框架的區(qū)別,我們讓ChatGPT給大家講一下:
你好,想問一下flask框架和Django框架的區(qū)別,謝謝!
Flask框架和Django框架的主要區(qū)別如下:
1.Flask 是一種輕量級的框架,而Django 是一種重量級框架。Flask本質上是一個微型框架,框架的基本框架非常精煉,適合快速開發(fā)各種簡單的項目,而Django相對來說代碼比較復雜,一般用來開發(fā)各種復雜的項目。
2.Flask只能用Python語言編寫,而 Django 支持 Python 、Java 以及 JavaScript 等多種編程語言。
3.Flask主要用于開發(fā) API、Web服務 以及個性化網頁,而 Django 則更適合建立復雜的網站和應用程序,例如媒體站點、博客、社交網站等。
4.Flask 沒有實現 ORM,其模板也不大受歡迎,而 Django 框架有一個成熟的 ORM 系統(tǒng)和眾多受歡迎的模板引擎,使用戶處理數據庫查詢和 HTML 模板編寫方面變得非常容易。
- 老生常談,首先安裝flask框架:
pip install flask
- 安裝完成后我們先小試一下。相信大家學每一種語言時,第一條語句都是輸出一個hello world. 那么我們今天也用flask框架在網頁輸出一個: Life is short, I need python.
from flask import Flaskapp = Flask(__name__)@app.route('/')
def index():return 'Life is short, I need python.'@app.route('/debug')
def debug():return 'I am Demo.'if __name__ == '__main__':app.run(debug=True, port=8888)
- 運行后,在控制臺中可以看到網址,點擊進入:
- @app.route(‘/’) 括號里是路由的名字,我們可以通過不同的路由名訪問不同的內容,比如訪問http://127.0.0.1:8888/得到的是:Life is short, I need python. 訪問http://127.0.0.1:8888/debug,我們得到的就是I am Demo.
- 從代碼中可以看出,實際return的就是html代碼,我們可以把整個html都拷貝到return后面,但是不夠友好,也不方便調試。所以我們需要用到flask的另一個類:render_template。使用方法:render_template(‘index.html’)
from flask import Flask, render_templateapp = Flask(__name__)@app.route('/')
def index():return render_template('index.html')@app.route('/debug')
def debug():return 'I am Demo.'if __name__ == '__main__':app.run(debug=True, port=8888)
- 我們需要在項目目錄下新建一個templates文件夾,flask會自動到這個文件夾尋找對應的html文件子。然后我們在templates文件夾內新建一個index.html 文件,修改一下body的內容:Demo’s Html!
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>Demo's Html!
</body>
</html>
- 現在我們就要操作index.html這個文件了。先在界面中添加一個表單,然后添加輸入框和按鈕:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<form action=""><input type="text" placeholder="請輸入描述信息"><button>創(chuàng)作圖畫</button>
</form>
</body>
</html>
- 這樣我們就得到了一個非常"美觀"的界面了:
- 之后我們想要實現的就是:按下按鈕后,把輸入框里的文本傳遞給后臺。這樣后臺就可以將我們傳遞過來文本提交給OpenAI去請求圖片了。
- Html文件如下,需要增加的是:1. 表單參數:method=“post”(此處對應后臺的處理方法);2. input處增加:name=“desc”(desc將傳遞給后臺)。即:傳遞方式和傳遞內容。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<form action="/" method="post"><input type="text" name="desc" placeholder="請輸入描述信息"><button>創(chuàng)作圖畫</button></form>
</body>
</html>
- 后臺代碼如下,增加:methods=[‘GET’, ‘POST’](用于接收和發(fā)送)和表單接收部分的代碼
from flask import Flask, render_template, requestapp = Flask(__name__)@app.route('/', methods=['GET', 'POST'])
def index():# 此處我們應該接收html界面的文本if request.method == 'POST': # 接收表單處理desc = request.form['desc']print(desc)return render_template('index.html')@app.route('/debug')
def debug():return 'I am Demo.'if __name__ == '__main__':app.run(debug=True, port=8888)
- 關于GET和POST的提交方式,可以簡單理解為:直接刷新或訪問頁面為GET;提交給后臺的話是POST。
- 我們可以試一下在控制臺,是否接收到了頁面的內容。
- 接著我們將OpenAI請求那部分代碼拷貝到接收表單處理的位置。
from flask import Flask, render_template, request
import openaiapi_key = "sk-e4F4owy**********************" # 此處是自己的API Key
openai.api_key = api_keyapp = Flask(__name__)@app.route('/', methods=['GET', 'POST'])
def index():# 此處我們應該接收html界面的文本if request.method == 'POST': # 接收表單處理desc = request.form['desc']print(desc)# 此處為OpenAI的API代碼response = openai.Image.create(prompt=desc,n=1,size="1024x1024")image_url = response['data'][0]['url']print(image_url)return render_template('index.html')@app.route('/debug')
def debug():return 'I am Demo.'if __name__ == '__main__':app.run(debug=True, port=8888)
- 輸入想要讓OpenAI創(chuàng)作的描述,單擊 創(chuàng)作圖畫。查看后臺是否接收到了頁面的信息,并返回一個url。
- 我們來看看在OpenAI的腦子里,2050年的地球是什么樣子的。
- 此時圖片還只是一個url,需要我們從后臺鼠標點擊打開,如何顯示到頁面上呢,我們下節(jié)再談,未完待續(xù),請持續(xù)關注~