Katika mwongozo huu, tutakuonyesha jinsi ya kuunda API ya wavuti kwa kutumia Python. API hii itaruhusu mawasiliano kati ya programu mbalimbali kupitia mtandao.
-
Sakinisha maktaba zinazohitajika
Hakikisha umeweka maktaba kamaFlaskauFastAPIkwa kutumia pip. -
Unda faili la msimbo
Tengeneza faili mpya la Python, kwa mfanoapp.py, ambapo utaunda API yako. -
Andika msimbo wa API
Tumia maktaba ulizoweka kuandika njia za API zinazoshughulikia maombi ya HTTP kama GET, POST, PUT, na DELETE.
from flask import Flask, jsonify, request
app = Flask(__name__)
# Hifadhi data za mfano
data = []
@app.route('/items', methods=['GET'])
def get_items():
# Rudisha orodha ya vitu
return jsonify(data)
@app.route('/items', methods=['POST'])
def add_item():
# Ongeza kipengee kipya kwenye data
item = request.json
data.append(item)
return jsonify(item), 201
if __name__ == '__main__':
app.run(debug=True)- [!TIP] Hakikisha API yako ina usalama wa kutosha kama uthibitishaji na idhini.
- [!IMPORTANT] Tumia
debug=Truetu wakati wa maendeleo, si katika mazingira ya uzalishaji. - [!WARNING] Usihifadhi data nyeti moja kwa moja kwenye API bila usimbaji fiche.
Kwa kufuata mwongozo huu, utaweza kuunda API ya wavuti yenye ufanisi kwa kutumia Python.
#import necessary libraries
import flask
from flask import request, jsonify
#create an instance of the Flask class
app = flask.Flask(__name__)
#create an endpoint for the API
@app.route('/api/v1/endpoint', methods=['GET'])
def api_endpoint():
#get the request data
data = request.get_json()
#process the data
result = process_data(data)
#return the result
return jsonify(result)
#function to process the data
def process_data(data):
#process the data
result = {'result': 'success'}
#return the result
return result
#run the Flask app
if __name__ == '__main__':
app.run()Kukimbia prompt tena kunatupa matokeo haya:
#import necessary libraries
import flask
from flask import request, jsonify
#create a Flask app
app = flask.Flask(__name__)
#create a route for the API
@app.route('/api', methods=['GET'])
def api_call():
#get the data from the request
data = request.get_json()
#process the data
result = process_data(data)
#return the result
return jsonify(result)
#define the process_data function
def process_data(data):
#do something with the data
result = data + 1
#return the result
return result
#run the app
if __name__ == '__main__':
app.run()Kuna tofauti ndogo sana kati ya matokeo haya mawili. Sasa tufanye kinyume, tutaweka joto (temperature) kuwa 0.9:
# Import necessary libraries
import flask
from flask import request, jsonify
# Create a Flask app
app = flask.Flask(__name__)
# Create a route for the API
@app.route('/api', methods=['GET'])
def api_call():
# Get the data from the request
data = request.args
# Process the data
result = process_data(data)
# Return the result
return jsonify(result)
# Function to process the data
def process_data(data):
# Do something with the data
result = data + 1
# Return the result
return result
# Run the app
if __name__ == '__main__':
app.run()na jaribio la pili kwa joto 0.9:
import flask
from flask import request, jsonify
# create the Flask app
app = flask.Flask(__name__)
app.config['DEBUG'] = True
# create some test data
books = [
{'id': 0, 'title': 'A Fire Upon The Deep', 'author': 'Vernor Vinge', 'first_sentence': 'The coldsleep itself was dreamless.', 'year_published': '1992'},
{'id': 1, 'title': 'The Ones Who Walk Away From Omelas', 'author': 'Ursula K. Le Guin', 'first_sentence': 'With a clamor of bells that set the swallows soaring, the Festival of Summer came to the city Omelas, bright-towered by the sea.', 'published': '1973'},
{'id': 2, 'title': 'Dhalgren', 'author': 'Samuel R. Delany', 'first_sentence': 'to wound the autumnal city.', 'published': '1975'}
]
# create an endpoint
@app.route('/', methods=['GET'])
def home():
return '''<h1>Welcome to our book API!</h1>'''
@app.route('/api/v1/resources/booksKama unavyoona, matokeo hayawezi kuwa tofauti zaidi.
Note, kwamba kuna vigezo vingine zaidi unaweza kubadilisha ili kubadilisha matokeo, kama top-k, top-p, adhabu ya kurudia, adhabu ya urefu na adhabu ya utofauti lakini haya yako nje ya muktadha wa mtaala huu.
Kuna mazoezi mengi unaweza kutumia ili kupata unachotaka. Utapata mtindo wako mwenyewe unapotumia prompting zaidi na zaidi.
Mbali na mbinu tulizozifunua, kuna mazoezi mazuri ya kuzingatia unapotumia LLM.
Hapa kuna mazoezi mazuri ya kuzingatia:
- Taja muktadha. Muktadha ni muhimu, kadri unavyoweza kuelezea zaidi kama eneo, mada, n.k. ndivyo bora.
- Punguza matokeo. Ikiwa unataka idadi maalum ya vitu au urefu maalum, taja hilo.
- Taja kile na jinsi. Kumbuka kutaja kile unachotaka na jinsi unavyotaka, kwa mfano "Tengeneza Python Web API yenye routes products na customers, igawanye katika mafaili 3".
- Tumia templates. Mara nyingi, utataka kuongeza data ya kampuni yako kwenye prompts zako. Tumia templates kufanya hivyo. Templates zinaweza kuwa na variables unazobadilisha na data halisi.
- Taja maneno kwa usahihi. LLM zinaweza kutoa jibu sahihi, lakini ukitaja maneno kwa usahihi, utapata jibu bora zaidi.
Hapa kuna msimbo wa Python unaoonyesha jinsi ya kujenga API rahisi kwa kutumia Flask:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def hello():
name = request.args.get('name', 'World')
return f'Hello, {name}!'
if __name__ == '__main__':
app.run()Tumia msaidizi wa AI kama GitHub Copilot au ChatGPT na tumia mbinu ya "self-refine" kuboresha msimbo.
Tafadhali jaribu kutatua kazi ya nyumbani kwa kuongeza prompts zinazofaa kwenye msimbo.
Tip
Andika prompt ya kuomba iboreshe, ni wazo zuri kupunguza idadi ya maboresho. Pia unaweza kuomba iboreshe kwa njia fulani, kwa mfano usanifu, utendaji, usalama, n.k.
Kwa nini ningetumia chain-of-thought prompting? Nionyeshe jibu 1 sahihi na majibu 2 yasiyo sahihi.
- Kufundisha LLM jinsi ya kutatua tatizo.
- B, Kufundisha LLM kutambua makosa kwenye msimbo.
- C, Kuelekeza LLM kuja na suluhisho tofauti.
J: 1, kwa sababu chain-of-thought ni kuhusu kuonyesha LLM jinsi ya kutatua tatizo kwa kumpa hatua mfululizo, na matatizo yanayofanana na jinsi yalivyotatuliwa.
Umetumia mbinu ya self-refine kwenye kazi ya nyumbani. Chukua programu yoyote uliyotengeneza na fikiria maboresho unayopenda kuifanya. Sasa tumia mbinu ya self-refine kutekeleza mabadiliko yaliyopendekezwa. Umefikiri matokeo ni bora au mabaya?
Baada ya kumaliza somo hili, angalia Mkusanyiko wetu wa Kujifunza AI ya Kizazi ili kuendelea kuongeza maarifa yako ya AI ya Kizazi!
Nenda kwenye Somo la 6 ambapo tutatumia maarifa yetu ya Prompt Engineering kwa kujenga programu za kizazi cha maandishi
Kiarifu cha Kutotegemea:
Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI Co-op Translator. Ingawa tunajitahidi kwa usahihi, tafadhali fahamu kwamba tafsiri za kiotomatiki zinaweza kuwa na makosa au upungufu wa usahihi. Hati ya asili katika lugha yake ya asili inapaswa kuchukuliwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu inayofanywa na binadamu inapendekezwa. Hatubebei dhamana kwa kutoelewana au tafsiri potofu zinazotokana na matumizi ya tafsiri hii.