(Klõpsa pildil üleval, et vaadata selle õppetunni videot)
Metakognitsioon tehisintellekti agentides
Tere tulemast metakognitsiooni õppetundi tehisintellekti agentides! See peatükk on mõeldud algajatele, kes on uudishimulikud, kuidas tehisintellekti agentidel on võimalik mõelda omaenda mõtlemisprotsesside üle. Selle õppetunni lõpuks mõistad võtmekontseptsioone ning omandad praktilisi näiteid, kuidas rakendada metakognitsiooni tehisintellekti agentide kujundamisel.
Pärast selle õppetunni läbimist suudad:
Metakognitsioon viitab kõrgema taseme kognitiivsetele protsessidele, mis hõlmavad mõtlemist omaenda mõtlemise üle. Tehisintellekti agentide puhul tähendab see võimet hinnata ja kohandada oma tegusid iseenda teadlikkuse ja varasemate kogemuste põhjal. Metakognitsioon ehk „mõtlemine mõtlemise üle“ on oluline mõiste agentsete tehisintellektisüsteemide arendamisel. See hõlmab teadlikkust omaenda sisemistest protsessidest ning võimet neid jälgida, reguleerida ja oma käitumist kohandada. Nii nagu meie teeme, kui „loeme ruumi“ või vaatame probleemi. See eneseteadlikkus aitab tehisintellektil teha paremaid otsuseid, tuvastada vigu ja parandada oma võimekust aja jooksul – mis viitab taas Turingi testile ja vaidlusele selle üle, kas tehisintellekt võtab kontrolli üle.
Agentsete tehisintellekti süsteemide kontekstis aitab metakognitsioon lahendada mitmeid väljakutseid, nagu näiteks:
Metakognitsioon ehk „mõtlemine mõtlemise üle“ on kõrgema taseme kognitiivne protsess, mis hõlmab eneseteadlikkust ja enda kognitiivsete protsesside eneseregulatsiooni. Tehisintellekti valdkonnas annab metakognitsioon agentidele võime hinnata ja kohandada oma strateegiaid ja tegusid, mis toob kaasa paremad probleemilahendus- ja otsustusoskused. Metakognitsiooni mõistmine võimaldab kujundada tehisintellekti agente, kes on mitte ainult targemad, vaid ka kohanemisvõimelisemad ja tõhusamad. Tõelises metakognitsioonis näeksime tehisintellekti selgesõnaliselt omaenda järelduste üle järeldamas.
Näide: „Ma eelistasin odavamaid lende, sest… Võib-olla jääb mul märkamata otselende, seega kontrollin uuesti.“ Jälgides, kuidas või miks valiti teatud marsruut.
Metakognitsioon mängib mitmel põhjusel tähtsat rolli tehisintellekti agentide kujundamisel:

Enne metakognitiivsete protsesside süvitsi minekut on oluline mõista AI agendi põhilisi komponente. AI agent koosneb tavaliselt:
Need komponendid töötavad koos, luues „ekspertiisi üksuse“, mis suudab täita spetsiifilisi ülesandeid.
Näide: Kujuta ette reisibürood, mis mitte ainult ei planeeri sinu puhkust, vaid kohandab oma marsruuti reaalajas andmete ja varasemate kliendikogemuste põhjal.
Kujutame ette, et kujundad AI-ga tööle pandud reisibüroo teenust. See agent, „Reisibüroo Agent“, aitab kasutajatel planeerida oma puhkust. Metakognitsiooni kaasamiseks peab Reisibüroo Agent hindama ja kohandama oma tegusid eneseteadlikkuse ja varasemate kogemuste põhjal. Siin on, kuidas metakognitsioon võiks rolli mängida:
Praegune ülesanne on aidata kasutajal planeerida reisi Pariisi.
Reisibüroo Agent kasutab metakognitsiooni, et hinnata oma sooritust ja õppida varasematest kogemustest. Näiteks:
Siin on lihtsustatud näide sellest, kuidas Reisibüroo Agendi kood võib metakognitsiooni kaasamisel välja näha:
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
self.experience_data = []
def gather_preferences(self, preferences):
self.user_preferences = preferences
def retrieve_information(self):
# Otsi lende, hotelle ja vaatamisväärsusi vastavalt eelistustele
flights = search_flights(self.user_preferences)
hotels = search_hotels(self.user_preferences)
attractions = search_attractions(self.user_preferences)
return flights, hotels, attractions
def generate_recommendations(self):
flights, hotels, attractions = self.retrieve_information()
itinerary = create_itinerary(flights, hotels, attractions)
return itinerary
def adjust_based_on_feedback(self, feedback):
self.experience_data.append(feedback)
# Analüüsi tagasisidet ja kohanda tulevasi soovitusi
self.user_preferences = adjust_preferences(self.user_preferences, feedback)
# Näidiskasutus
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
travel_agent.adjust_based_on_feedback(feedback)
Metakognitsiooni kaasamisega saab Reisibüroo Agent pakkuda personaalsemaid ja täpsemaid reisisoovitusi, parandades kasutajakogemust.
Planeerimine on kriitiline komponent tehisintellekti agendi käitumises. See hõlmab sammude kavandamist eesmärgi saavutamiseks, võttes arvesse praegust olekut, ressursse ja võimalikke takistusi.
Näide: Siin on sammud, mida Reisibüroo Agent peab kasutaja reisi planeerimiseks tõhusalt tegema:
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
self.experience_data = []
def gather_preferences(self, preferences):
self.user_preferences = preferences
def retrieve_information(self):
flights = search_flights(self.user_preferences)
hotels = search_hotels(self.user_preferences)
attractions = search_attractions(self.user_preferences)
return flights, hotels, attractions
def generate_recommendations(self):
flights, hotels, attractions = self.retrieve_information()
itinerary = create_itinerary(flights, hotels, attractions)
return itinerary
def adjust_based_on_feedback(self, feedback):
self.experience_data.append(feedback)
self.user_preferences = adjust_preferences(self.user_preferences, feedback)
# Näide kasutamisest broneerimistaotluses
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
travel_agent.adjust_based_on_feedback(feedback)
Alustuseks mõistame erinevust RAG-tööriista ja ennetava konteksti laadimise vahel.

RAG ühendab otsingusüsteemi genereeriva mudeliga. Kui esitatakse päring, otsingusüsteem hangib asjakohased dokumendid või andmed välistest allikatest ning see hangitud teave kasutatakse genereeriva mudeli sisendi täiustamiseks. See aitab mudelil genereerida täpsemaid ja kontekstikohasemaid vastuseid.
RAG süsteemis hangib agent asjakohast teavet teadmusbaasist ning kasutab seda sobivate vastuste või tegude genereerimiseks.
Paranduslik RAG lähenemine keskendub RAG-tehnikate kasutamisele vigade parandamiseks ja tehisintellekti agentide täpsuse parandamiseks. See hõlmab:
Mõtle otsinguagendile, kes hangib veebist infot kasutajate päringutele vastamiseks. Paranduslik RAG võib hõlmata:
Paranduslik RAG (Retrieval-Augmented Generation) parandab tehisintellekti suutlikkust teavet hankida ja genereerida, samal ajal vigu parandades. Vaatame, kuidas Reisibüroo Agent saab kasutada paranduslikku RAG-i, et pakkuda täpsemaid ja asjakohasemaid reisisoovitusi.
See hõlmab:
Näide:
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
Näide:
flights = search_flights(preferences)
hotels = search_hotels(preferences)
attractions = search_attractions(preferences)
Näide:
itinerary = create_itinerary(flights, hotels, attractions)
print("Suggested Itinerary:", itinerary)
Näide:
feedback = {
"liked": ["Louvre Museum"],
"disliked": ["Eiffel Tower (too crowded)"]
}
Näide:
if "disliked" in feedback:
preferences["avoid"] = feedback["disliked"]
Näide:
new_attractions = search_attractions(preferences)
new_itinerary = create_itinerary(flights, hotels, new_attractions)
print("Updated Itinerary:", new_itinerary)
Näide:
def adjust_preferences(preferences, feedback):
if "liked" in feedback:
preferences["favorites"] = feedback["liked"]
if "disliked" in feedback:
preferences["avoid"] = feedback["disliked"]
return preferences
preferences = adjust_preferences(preferences, feedback)
Siin on lihtsustatud Python koodi näidis, mis sisaldab parandusliku RAG lähenemise rakendamist Reisibüroo Agendis:
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
self.experience_data = []
def gather_preferences(self, preferences):
self.user_preferences = preferences
def retrieve_information(self):
flights = search_flights(self.user_preferences)
hotels = search_hotels(self.user_preferences)
attractions = search_attractions(self.user_preferences)
return flights, hotels, attractions
def generate_recommendations(self):
flights, hotels, attractions = self.retrieve_information()
itinerary = create_itinerary(flights, hotels, attractions)
return itinerary
def adjust_based_on_feedback(self, feedback):
self.experience_data.append(feedback)
self.user_preferences = adjust_preferences(self.user_preferences, feedback)
new_itinerary = self.generate_recommendations()
return new_itinerary
# Näidis kasutus
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
new_itinerary = travel_agent.adjust_based_on_feedback(feedback)
print("Updated Itinerary:", new_itinerary)
Ettenägelik konteksti laadimine hõlmab asjakohase konteksti või taustateabe laadimist mudelisse enne päringu töötlemist. See tähendab, et mudelil on sellele teabele juurdepääs algusest peale, mis aitab tal genereerida informeeritumaid vastuseid ilma, et oleks vaja protsessi käigus täiendavat andmetevahetust.
Siin on lihtsustatud näide sellest, kuidas ettenägelikku konteksti laadimine võiks välja näha reisikorraldaja rakenduses Pythonis:
class TravelAgent:
def __init__(self):
# Eellaadige populaarsed sihtkohad ja nende teave
self.context = {
"Paris": {"country": "France", "currency": "Euro", "language": "French", "attractions": ["Eiffel Tower", "Louvre Museum"]},
"Tokyo": {"country": "Japan", "currency": "Yen", "language": "Japanese", "attractions": ["Tokyo Tower", "Shibuya Crossing"]},
"New York": {"country": "USA", "currency": "Dollar", "language": "English", "attractions": ["Statue of Liberty", "Times Square"]},
"Sydney": {"country": "Australia", "currency": "Dollar", "language": "English", "attractions": ["Sydney Opera House", "Bondi Beach"]}
}
def get_destination_info(self, destination):
# Hangi sihtkoha teave eelnevalt laetud kontekstist
info = self.context.get(destination)
if info:
return f"{destination}:\nCountry: {info['country']}\nCurrency: {info['currency']}\nLanguage: {info['language']}\nAttractions: {', '.join(info['attractions'])}"
else:
return f"Sorry, we don't have information on {destination}."
# Näidiskasutus
travel_agent = TravelAgent()
print(travel_agent.get_destination_info("Paris"))
print(travel_agent.get_destination_info("Tokyo"))
Algatamine (__init__ meetod): TravelAgent klass laeb eelnevalt sõnastikku, mis sisaldab teavet populaarsete sihtkohtade kohta nagu Pariis, Tokio, New York ja Sydney. See sõnastik sisaldab üksikasju, nagu riik, valuuta, keel ja peamised vaatamisväärsused iga sihtkoha kohta.
Teabe pärimine (get_destination_info meetod): Kui kasutaja küsib konkreetse sihtkoha kohta, toob get_destination_info meetod vastava info eelnevalt laetud kontekstisõnastikust.
Konteksti eel-laadimise abil saab reisikorraldaja rakendus kiiresti reageerida kasutajate päringutele, ilma et peaks reaalajas välisest allikast teavet otsima. See muudab rakenduse efektiivsemaks ja reageerimisvõimelisemaks.
Plaani algatamine eesmärgiga tähendab selge eesmärgi või soovitud tulemuse määratlemist. Selle eesmärgi varajane määratlemine võimaldab mudelil kasutada seda juhisena kogu iteratiivse protsessi vältel. See aitab tagada, et iga iteratsioon viib soovitud tulemuse saavutamisele lähemale, muutes protsessi tõhusamaks ja sihipärasemaks.
Siin on näide, kuidas võiksite reisikorraldaja jaoks Pythoni keeles enne iteratsiooni algatada reisiplaani eesmärgiga:
Reisikorraldaja soovib planeerida kliendile kohandatud puhkuse. Eesmärgiks on luua reisiplaan, mis maksimeerib kliendi rahulolu vastavalt tema eelistustele ja eelarvele.
class TravelAgent:
def __init__(self, destinations):
self.destinations = destinations
def bootstrap_plan(self, preferences, budget):
plan = []
total_cost = 0
for destination in self.destinations:
if total_cost + destination['cost'] <= budget and self.match_preferences(destination, preferences):
plan.append(destination)
total_cost += destination['cost']
return plan
def match_preferences(self, destination, preferences):
for key, value in preferences.items():
if destination.get(key) != value:
return False
return True
def iterate_plan(self, plan, preferences, budget):
for i in range(len(plan)):
for destination in self.destinations:
if destination not in plan and self.match_preferences(destination, preferences) and self.calculate_cost(plan, destination) <= budget:
plan[i] = destination
break
return plan
def calculate_cost(self, plan, new_destination):
return sum(destination['cost'] for destination in plan) + new_destination['cost']
# Näidis kasutus
destinations = [
{"name": "Paris", "cost": 1000, "activity": "sightseeing"},
{"name": "Tokyo", "cost": 1200, "activity": "shopping"},
{"name": "New York", "cost": 900, "activity": "sightseeing"},
{"name": "Sydney", "cost": 1100, "activity": "beach"},
]
preferences = {"activity": "sightseeing"}
budget = 2000
travel_agent = TravelAgent(destinations)
initial_plan = travel_agent.bootstrap_plan(preferences, budget)
print("Initial Plan:", initial_plan)
refined_plan = travel_agent.iterate_plan(initial_plan, preferences, budget)
print("Refined Plan:", refined_plan)
Algatamine (__init__ meetod): TravelAgent klass algatatakse potentsiaalsete sihtkohtade nimekirjaga, kus igaühel on omadused nagu nimi, hind ja tegevuse tüüp.
Plaani algatamine (bootstrap_plan meetod): See meetod loob algse reisiplaani kliendi eelistuste ja eelarve põhjal. See läbib sihtkohtade nimekirja ja lisab sihtkohad plaani, kui need vastavad kliendi eelistustele ja mahuvad eelarvesse.
Eelistuste sobitamine (match_preferences meetod): See meetod kontrollib, kas sihtkoht vastab kliendi eelistustele.
Plaani iteratsioon (iterate_plan meetod): See meetod täpsustab algset plaani, püüdes asendada iga sihtkoha parema sobivusega, võttes arvesse kliendi eelistusi ja eelarvepiiranguid.
Kulu arvutamine (calculate_cost meetod): See meetod arvutab praeguse plaani kogukulu, sealhulgas potentsiaalne uus sihtkoht.
Plaani alustades selge eesmärgiga (nt kliendi rahulolu maksimeerimine) ja iteratiivselt plaani täiustades saab reisikorraldaja luua kohandatud ja optimeeritud reisiplaani kliendile. See lähenemine tagab, et reisiplaan vastab algusest peale kliendi eelistustele ja eelarvele ning paraneb iga iteratsiooniga.
Suured keelemudelid (LLM-id) saavad aidata ümberjärjestamisel ja hindamisel, hinnates leitud dokumentide või genereeritud vastuste asjakohasust ja kvaliteeti. See toimib järgmiselt:
Päring: Esmane päring toob tagasi kandidaaddokumendid või vastused päringu alusel.
Ümberjärjestamine: LLM hindab kandidaate ning järjestab need olulisuse ja kvaliteedi alusel ümber. See tagab, et kõige asjakohasem ja kvaliteetsem info esitatakse esimesena.
Hindamine: LLM määrab igale kandidaadile skoori, mis peegeldab nende asjakohasust ja kvaliteeti. See aitab valida kasutajale parima vastuse või dokumendi.
Kasutades LLM-i ümberjärjestamiseks ja hindamiseks, saab süsteem pakkuda täpsemat ning kontekstitundlikumat teavet, parandades kasutajakogemust.
Siin on näide, kuidas reisikorraldaja võiks kasutada suurt keelemudelit (LLM) teha reisisihtkohtade ümberjärjestamist ja hindamist kasutaja eelistuste põhjal Pythonis:
Reisikorraldaja soovib soovitada kliendile parimaid reisisihtkohti kasutaja eelistuste põhjal. LLM aitab sihtkohad ümberjärjestada ja hinnata, et tagada kõige asjakohasemate valikute esitamine.
Siin on näide, kuidas saate eelmist näidet uuendada, kasutades Azure OpenAI teenuseid:
import requests
import json
class TravelAgent:
def __init__(self, destinations):
self.destinations = destinations
def get_recommendations(self, preferences, api_key, endpoint):
# Genereeri päring Azure OpenAI jaoks
prompt = self.generate_prompt(preferences)
# Määra päised ja päringu andmed
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}'
}
payload = {
"prompt": prompt,
"max_tokens": 150,
"temperature": 0.7
}
# Kutsu Azure OpenAI API-d, et saada ümberjärjestatud ja hinnatud sihtkohad
response = requests.post(endpoint, headers=headers, json=payload)
response_data = response.json()
# Eemalda ja tagasta soovitused
recommendations = response_data['choices'][0]['text'].strip().split('\n')
return recommendations
def generate_prompt(self, preferences):
prompt = "Here are the travel destinations ranked and scored based on the following user preferences:\n"
for key, value in preferences.items():
prompt += f"{key}: {value}\n"
prompt += "\nDestinations:\n"
for destination in self.destinations:
prompt += f"- {destination['name']}: {destination['description']}\n"
return prompt
# Näidis kasutus
destinations = [
{"name": "Paris", "description": "City of lights, known for its art, fashion, and culture."},
{"name": "Tokyo", "description": "Vibrant city, famous for its modernity and traditional temples."},
{"name": "New York", "description": "The city that never sleeps, with iconic landmarks and diverse culture."},
{"name": "Sydney", "description": "Beautiful harbour city, known for its opera house and stunning beaches."},
]
preferences = {"activity": "sightseeing", "culture": "diverse"}
api_key = 'your_azure_openai_api_key'
endpoint = 'https://your-endpoint.com/openai/deployments/your-deployment-name/completions?api-version=2022-12-01'
travel_agent = TravelAgent(destinations)
recommendations = travel_agent.get_recommendations(preferences, api_key, endpoint)
print("Recommended Destinations:")
for rec in recommendations:
print(rec)
Algatamine: TravelAgent klass algatatakse potentsiaalsete reisisihtkohtade nimekirjaga, kus igaühel on omadused nagu nimi ja kirjeldus.
Soovituste hankimine (get_recommendations meetod): See meetod genereerib päringu Azure OpenAI teenusele vastavalt kasutaja eelistustele ning saadab HTTP POST päringu Azure OpenAI API-le, et saada ümberjärjestatud ja hinnatud sihtkohad.
Päringu genereerimine (generate_prompt meetod): See meetod koostab päringu Azure OpenAI teenusele, mis sisaldab kasutaja eelistusi ja sihtkohtade nimekirja. Päring juhib mudelit ümberjärjestama ja hindama sihtkohti vastavalt antud eelistustele.
API kõne: requests teek kasutatakse HTTP POST päringu tegemiseks Azure OpenAI API lõpp-punktile. Vastuses on ümberjärjestatud ja hinnatud sihtkohad.
Näidis kasutamine: Reisikorraldaja kogub kasutaja eelistused (nt huvi vaatamisväärsuste ja mitmekesise kultuuri vastu) ning kasutab Azure OpenAI teenust soovituste ümberjärjestamiseks ja hindamiseks.
Veenduge, et asendate your_azure_openai_api_key oma tegeliku Azure OpenAI API võtmega ja https://your-endpoint.com/... oma Azure OpenAI juurutuse tegeliku lõpp-punkti URL-iga.
Kasutades LLM-i ümberjärjestamiseks ja hindamiseks, saab reisikorraldaja pakkuda klientidele isikupärasemaid ja asjakohasemaid reisisoovitusi, parandades nende üldist kogemust.
Retrieval-Augmented Generation (RAG) võib olla nii päringutehnika kui ka tööriist AI agentide arendamisel. Mõistmine, mis vahe on nende vahel, aitab teil RAG-i oma projektides tõhusamalt kasutada.
Mis see on?
Kuidas see töötab:
Näide reisikorraldajast:
Mis see on?
Kuidas see töötab:
Näide reisikorraldajast:
| Aspekt | Päringutehnika | Tööriist |
|---|---|---|
| Manuaalne vs Automaatne | Käsitsi koostatud prompt’id iga päringu jaoks. | Automatiseeritud protsess otsimiseks ja genereerimiseks. |
| Kontroll | Pakub rohkem kontrolli otsimise protsessi üle. | Sujuvam ja automatiseeritud otsing ja genereerimine. |
| Paindlikkus | Võimaldab kohandatud prompt’e vastavalt spetsiifilistele vajadustele. | Tõhusam suurte lahenduste puhul. |
| Keerukus | Nõuab prompt’ide koostamist ja häälestamist. | Kergem integreerida AI agendi arhitektuuri. |
Päringutehnika näide:
def search_museums_in_paris():
prompt = "Find top museums in Paris"
search_results = search_web(prompt)
return search_results
museums = search_museums_in_paris()
print("Top Museums in Paris:", museums)
Tööriista näide:
class Travel_Agent:
def __init__(self):
self.rag_tool = RAGTool()
def get_museums_in_paris(self):
user_input = "I want to visit museums in Paris."
response = self.rag_tool.retrieve_and_generate(user_input)
return response
travel_agent = Travel_Agent()
museums = travel_agent.get_museums_in_paris()
print("Top Museums in Paris:", museums)
Asjakohasuse hindamine on AI agendi toimivuse oluline aspekt. See tagab, et agendi poolt leitav ja genereeritav teave on sobiv, täpne ja kasulik kasutajale. Vaatame, kuidas asjakohasust AI agentides hinnata, sh praktilised näited ja tehnikad.
Näide:
def relevance_score(item, query):
score = 0
if item['category'] in query['interests']:
score += 1
if item['price'] <= query['budget']:
score += 1
if item['location'] == query['destination']:
score += 1
return score
Näide:
def filter_and_rank(items, query):
ranked_items = sorted(items, key=lambda item: relevance_score(item, query), reverse=True)
return ranked_items[:10] # Tagasta 10 asjakohasemat eset
Näide:
def process_query(query):
# Kasutage NLP-d, et kasutaja päringust olulist teavet välja võtta
processed_query = nlp(query)
return processed_query
Näide:
def adjust_based_on_feedback(feedback, items):
for item in items:
if item['name'] in feedback['liked']:
item['relevance'] += 1
if item['name'] in feedback['disliked']:
item['relevance'] -= 1
return items
Siin on praktiline näide sellest, kuidas reisikorraldaja saab hinnata reisis soovituste asjakohasust:
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
self.experience_data = []
def gather_preferences(self, preferences):
self.user_preferences = preferences
def retrieve_information(self):
flights = search_flights(self.user_preferences)
hotels = search_hotels(self.user_preferences)
attractions = search_attractions(self.user_preferences)
return flights, hotels, attractions
def generate_recommendations(self):
flights, hotels, attractions = self.retrieve_information()
ranked_hotels = self.filter_and_rank(hotels, self.user_preferences)
itinerary = create_itinerary(flights, ranked_hotels, attractions)
return itinerary
def filter_and_rank(self, items, query):
ranked_items = sorted(items, key=lambda item: self.relevance_score(item, query), reverse=True)
return ranked_items[:10] # Tagasta 10 kõige asjakohasemat elementi
def relevance_score(self, item, query):
score = 0
if item['category'] in query['interests']:
score += 1
if item['price'] <= query['budget']:
score += 1
if item['location'] == query['destination']:
score += 1
return score
def adjust_based_on_feedback(self, feedback, items):
for item in items:
if item['name'] in feedback['liked']:
item['relevance'] += 1
if item['name'] in feedback['disliked']:
item['relevance'] -= 1
return items
# Näidis kasutusjuhtum
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
updated_items = travel_agent.adjust_based_on_feedback(feedback, itinerary['hotels'])
print("Updated Itinerary with Feedback:", updated_items)
Otsing eesmärgiga tähendab kasutaja päringu taga oleva sügavama eesmärgi või kavatsuse mõistmist ja tõlgendamist, et leida ja genereerida kõige asjakohasemat ja kasulikumat teavet. See lähenemine ületab lihtsalt märksõnade sobitamise ja keskendub kasutaja tegelike vajaduste ja konteksti mõistmisele.
Vaatame näitena reisikorraldajat, et näha, kuidas saab otsingut eesmärgiga ellu viia.
Kasutaja eelistuste kogumine
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
Kasutaja eesmärgi mõistmine
def identify_intent(query):
if "book" in query or "purchase" in query:
return "transactional"
elif "website" in query or "official" in query:
return "navigational"
else:
return "informational"
Kontekstitunnetus
def analyze_context(query, user_history):
# Ühenda praegune päring kasutaja ajaloo kontekstist arusaamiseks
context = {
"current_query": query,
"user_history": user_history
}
return context
Otsi ja personaalsem tee tulemusi
def search_with_intent(query, preferences, user_history):
intent = identify_intent(query)
context = analyze_context(query, user_history)
if intent == "informational":
search_results = search_information(query, preferences)
elif intent == "navigational":
search_results = search_navigation(query)
elif intent == "transactional":
search_results = search_transaction(query, preferences)
personalized_results = personalize_results(search_results, user_history)
return personalized_results
def search_information(query, preferences):
# Näidisotsingulogiika informatiivse sihtotstarbe jaoks
results = search_web(f"best {preferences['interests']} in {preferences['destination']}")
return results
def search_navigation(query):
# Näidisotsingulogiika navigeeriva sihtotstarbe jaoks
results = search_web(query)
return results
def search_transaction(query, preferences):
# Näidisotsingulogiika tehingulise sihtotstarbe jaoks
results = search_web(f"book {query} to {preferences['destination']}")
return results
def personalize_results(results, user_history):
# Näidis isikupärastamise loogika
personalized = [result for result in results if result not in user_history]
return personalized[:10] # Tagasta 10 parimat isikupärastatud tulemust
Näidis kasutamine
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
user_history = ["Louvre Museum website", "Book flight to Paris"]
query = "best museums in Paris"
results = search_with_intent(query, preferences, user_history)
print("Search Results:", results)
Koodi genereerivad agendid kasutavad tehisintellekti mudeleid koodi kirjutamiseks ja täitmiseks, lahendades keerukaid probleeme ja automatiseerides ülesandeid.
Koodi genereerivad agendid kasutavad generatiivset AI mudelit koodi kirjutamiseks ja käivitamiseks. Need agendid suudavad lahendada keerukaid probleeme, automatiseerida ülesandeid ja pakkuda väärtuslikke teadmisi, genereerides ja käivitades koodi erinevates programmeerimiskeeltes.
Kujutle, et kavandad koodi genereerivat agenti. Siin on, kuidas see võiks toimida:
Selles näites kavandame koodi genereeriva agendi, nimega Reisibüroo, mis aitab kasutajatel reisi planeerida, genereerides ja käivitades koodi. See agent suudab toime tulla ülesannetega nagu reisivõimaluste otsimine, tulemuste filtreerimine ja reisi kavandamine, kasutades generatiivset AI-d.
Kasutaja eelistuste kogumine
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
Koodi genereerimine andmete hankimiseks
def generate_code_to_fetch_data(preferences):
# Näide: genereeri kood, et otsida lende kasutaja eelistuste põhjal
code = f"""
def search_flights():
import requests
response = requests.get('https://api.example.com/flights', params={preferences})
return response.json()
"""
return code
def generate_code_to_fetch_hotels(preferences):
# Näide: genereeri kood, et otsida hotelle
code = f"""
def search_hotels():
import requests
response = requests.get('https://api.example.com/hotels', params={preferences})
return response.json()
"""
return code
Genereeritud koodi käivitamine
def execute_code(code):
# Käivita genereeritud kood kasutades exec
exec(code)
result = locals()
return result
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
flight_code = generate_code_to_fetch_data(preferences)
hotel_code = generate_code_to_fetch_hotels(preferences)
flights = execute_code(flight_code)
hotels = execute_code(hotel_code)
print("Flight Options:", flights)
print("Hotel Options:", hotels)
Reisi kavandamine
def generate_itinerary(flights, hotels, attractions):
itinerary = {
"flights": flights,
"hotels": hotels,
"attractions": attractions
}
return itinerary
attractions = search_attractions(preferences)
itinerary = generate_itinerary(flights, hotels, attractions)
print("Suggested Itinerary:", itinerary)
Tagasiside põhjal kohandamine
def adjust_based_on_feedback(feedback, preferences):
# Kohanda eelistusi kasutaja tagasiside põhjal
if "liked" in feedback:
preferences["favorites"] = feedback["liked"]
if "disliked" in feedback:
preferences["avoid"] = feedback["disliked"]
return preferences
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
updated_preferences = adjust_based_on_feedback(feedback, preferences)
# Genereeri uuesti ja täida kood uuendatud eelistustega
updated_flight_code = generate_code_to_fetch_data(updated_preferences)
updated_hotel_code = generate_code_to_fetch_hotels(updated_preferences)
updated_flights = execute_code(updated_flight_code)
updated_hotels = execute_code(updated_hotel_code)
updated_itinerary = generate_itinerary(updated_flights, updated_hotels, attractions)
print("Updated Itinerary:", updated_itinerary)
Tabeli skeemi põhjal saab päringute genereerimise protsessi tõesti täiustada, kasutades keskkonna teadlikkust ja järeldamist.
Siin on näide, kuidas seda saab teha:
Siin on uuendatud Python koodi näide, mis hõlmab neid kontseptsioone:
def adjust_based_on_feedback(feedback, preferences, schema):
# Kohanda eelistusi kasutajate tagasiside põhjal
if "liked" in feedback:
preferences["favorites"] = feedback["liked"]
if "disliked" in feedback:
preferences["avoid"] = feedback["disliked"]
# Loogika skeemi põhjal teiste seotud eelistuste kohandamiseks
for field in schema:
if field in preferences:
preferences[field] = adjust_based_on_environment(feedback, field, schema)
return preferences
def adjust_based_on_environment(feedback, field, schema):
# Kohandatud loogika eelistuste muutmiseks skeemi ja tagasiside põhjal
if field in feedback["liked"]:
return schema[field]["positive_adjustment"]
elif field in feedback["disliked"]:
return schema[field]["negative_adjustment"]
return schema[field]["default"]
def generate_code_to_fetch_data(preferences):
# Genereeri kood lennuandmete hankimiseks värskendatud eelistuste alusel
return f"fetch_flights(preferences={preferences})"
def generate_code_to_fetch_hotels(preferences):
# Genereeri kood hotelliandmete hankimiseks värskendatud eelistuste alusel
return f"fetch_hotels(preferences={preferences})"
def execute_code(code):
# Simuleeri koodi täitmist ja tagasta testandmed
return {"data": f"Executed: {code}"}
def generate_itinerary(flights, hotels, attractions):
# Genereeri marsruut lendude, hotellide ja vaatamisväärsuste põhjal
return {"flights": flights, "hotels": hotels, "attractions": attractions}
# Näidisskeem
schema = {
"favorites": {"positive_adjustment": "increase", "negative_adjustment": "decrease", "default": "neutral"},
"avoid": {"positive_adjustment": "decrease", "negative_adjustment": "increase", "default": "neutral"}
}
# Näidiskasutus
preferences = {"favorites": "sightseeing", "avoid": "crowded places"}
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
updated_preferences = adjust_based_on_feedback(feedback, preferences, schema)
# Genereeri uuesti ja täida kood värskendatud eelistustega
updated_flight_code = generate_code_to_fetch_data(updated_preferences)
updated_hotel_code = generate_code_to_fetch_hotels(updated_preferences)
updated_flights = execute_code(updated_flight_code)
updated_hotels = execute_code(updated_hotel_code)
updated_itinerary = generate_itinerary(updated_flights, updated_hotels, feedback["liked"])
print("Updated Itinerary:", updated_itinerary)
schema sõnastik määratleb, kuidas eelistusi tagasiside põhjal kohandada. See sisaldab välju nagu favorites ja avoid vastavate kohandustega.adjust_based_on_feedback meetod): See meetod kohandab eelistusi kasutaja tagasiside ja skeemi põhjal.adjust_based_on_environment meetod): See meetod kohandab muudatusi skeemi ja tagasiside põhjal.Keskkonna teadlikuks muutmise ja skeemi põhise järeldamise abil suudab süsteem genereerida täpsemaid ja asjakohasemaid päringuid, pakkudes paremaid reisisoovitusi ja personaalset kasutajakogemust.
SQL (struktureeritud päringukeel) on võimas tööriist andmebaasidega suhtlemiseks. Kui kasutada seda osa otsingupõhisest generatsiooni (RAG) lähenemisest, saab SQL-andmebaasidest olulisi andmeid pärida, et tehisintellekti agentide vastuseid või tegevusi parandada ja genereerida. Vaatleme, kuidas SQL-i saab RAG tehnikana reisibüroo kontekstis kasutada.
Näide: Andmeanalüüsagent:
Kasutaja eelistuste kogumine
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
def gather_preferences(self, preferences):
self.user_preferences = preferences
SQL päringute genereerimine
def generate_sql_query(table, preferences):
query = f"SELECT * FROM {table} WHERE "
conditions = []
for key, value in preferences.items():
conditions.append(f"{key}='{value}'")
query += " AND ".join(conditions)
return query
SQL päringute käivitamine
import sqlite3
def execute_sql_query(query, database="travel.db"):
connection = sqlite3.connect(database)
cursor = connection.cursor()
cursor.execute(query)
results = cursor.fetchall()
connection.close()
return results
Soovituste genereerimine
def generate_recommendations(preferences):
flight_query = generate_sql_query("flights", preferences)
hotel_query = generate_sql_query("hotels", preferences)
attraction_query = generate_sql_query("attractions", preferences)
flights = execute_sql_query(flight_query)
hotels = execute_sql_query(hotel_query)
attractions = execute_sql_query(attraction_query)
itinerary = {
"flights": flights,
"hotels": hotels,
"attractions": attractions
}
return itinerary
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = generate_recommendations(preferences)
print("Suggested Itinerary:", itinerary)
Lennu päring
SELECT * FROM flights WHERE destination='Paris' AND dates='2025-04-01 to 2025-04-10' AND budget='moderate';
Hotelli päring
SELECT * FROM hotels WHERE destination='Paris' AND budget='moderate';
Vaatamisväärsuste päring
SELECT * FROM attractions WHERE destination='Paris' AND interests='museums, cuisine';
SQL-i kasutamine otsingupõhise generatsiooni (RAG) osana võimaldab AI agentidel nagu Reisibüroo dünaamiliselt hankida ja kasutada asjakohast teavet täpsete ja isikupärastatud soovituste andmiseks.
Metakognitsiooni rakenduse demonstreerimiseks loome lihtsa agendi, kes reflekteerib oma otsustusprotsessile probleemi lahendamise ajal. Selle näite jaoks loome süsteemi, kus agent üritab optimeerida hotelli valikut, kuid seejärel hindab enda põhjendust ja kohandab strateegiat vigade või ebapiisavate valikute korral.
Simuleerime seda lihtsa näitega, kus agent valib hotellid hinna ja kvaliteedi kombinatsiooni põhjal, kuid see “reflekteerib” oma otsuseid ja teeb vastavad kohandused.
Siin on näide:
class HotelRecommendationAgent:
def __init__(self):
self.previous_choices = [] # Salvestab eelnevalt valitud hotellid
self.corrected_choices = [] # Salvestab parandatud valikud
self.recommendation_strategies = ['cheapest', 'highest_quality'] # Olemasolevad strateegiad
def recommend_hotel(self, hotels, strategy):
"""
Recommend a hotel based on the chosen strategy.
The strategy can either be 'cheapest' or 'highest_quality'.
"""
if strategy == 'cheapest':
recommended = min(hotels, key=lambda x: x['price'])
elif strategy == 'highest_quality':
recommended = max(hotels, key=lambda x: x['quality'])
else:
recommended = None
self.previous_choices.append((strategy, recommended))
return recommended
def reflect_on_choice(self):
"""
Reflect on the last choice made and decide if the agent should adjust its strategy.
The agent considers if the previous choice led to a poor outcome.
"""
if not self.previous_choices:
return "No choices made yet."
last_choice_strategy, last_choice = self.previous_choices[-1]
# Oletame, et meil on kasutajate tagasiside, mis ütleb, kas viimane valik oli hea või mitte
user_feedback = self.get_user_feedback(last_choice)
if user_feedback == "bad":
# Kohanda strateegiat, kui eelmine valik oli rahuldamatu
new_strategy = 'highest_quality' if last_choice_strategy == 'cheapest' else 'cheapest'
self.corrected_choices.append((new_strategy, last_choice))
return f"Reflecting on choice. Adjusting strategy to {new_strategy}."
else:
return "The choice was good. No need to adjust."
def get_user_feedback(self, hotel):
"""
Simulate user feedback based on hotel attributes.
For simplicity, assume if the hotel is too cheap, the feedback is "bad".
If the hotel has quality less than 7, feedback is "bad".
"""
if hotel['price'] < 100 or hotel['quality'] < 7:
return "bad"
return "good"
# Simuleeri hotellide nimekirja (hind ja kvaliteet)
hotels = [
{'name': 'Budget Inn', 'price': 80, 'quality': 6},
{'name': 'Comfort Suites', 'price': 120, 'quality': 8},
{'name': 'Luxury Stay', 'price': 200, 'quality': 9}
]
# Loo agent
agent = HotelRecommendationAgent()
# Samm 1: Agent soovitab hotelli, kasutades "odavaima" strateegiat
recommended_hotel = agent.recommend_hotel(hotels, 'cheapest')
print(f"Recommended hotel (cheapest): {recommended_hotel['name']}")
# Samm 2: Agent mõtiskleb valiku üle ja kohandab strateegiat vajadusel
reflection_result = agent.reflect_on_choice()
print(reflection_result)
# Samm 3: Agent soovitab uuesti, seekord kasutades kohandatud strateegiat
adjusted_recommendation = agent.recommend_hotel(hotels, 'highest_quality')
print(f"Adjusted hotel recommendation (highest_quality): {adjusted_recommendation['name']}")
Peamine on agendi võime:
See on lihtne metakognitsiooni vorm, kus süsteem suudab kohandada oma järeldusprotsessi sisemise tagasiside põhjal.
Metakognitsioon on võimas tööriist, mis võib oluliselt parandada AI agentide võimeid. Metakognitiivsete protsesside kaasamine võimaldab teil kujundada agende, kes on targemad, kohanemisvõimelisemad ja tõhusamad. Kasutage täiendavaid ressursse, et veelgi süvitsi mõista metakognitsiooni põnevat maailma AI agentides.
Liituge Microsoft Foundry Discordiga, et kohtuda teiste õppijatega, osaleda tööaegadel ja saada AI agentide küsimustele vastused.
Lahtiütlus: See dokument on tõlgitud kasutades AI tõlketeenust Co-op Translator. Kuigi me püüdleme täpsuse poole, palun pange tähele, et automatiseeritud tõlgetes võib esineda vigu või ebatäpsusi. Originaaldokument selle emakeeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitatakse kasutada professionaalset inimtõlget. Me ei vastuta selle tõlkega seotud eksimustest või valesti mõistmistest.