ai-agents-for-beginners

Multi-Agent Design

(Bofya picha hapo juu kutazama video ya somo hili)

Metakognisheni katika Wakala wa AI

Utangulizi

Karibu kwenye somo kuhusu metakognisheni katika wakala wa AI! Sura hii imebuniwa kwa wanaoanza ambao wanavutiwa na jinsi wakala wa AI wanavyoweza kufikiria kuhusu michakato yao ya kufikiri. Mwisho wa somo hili, utaelewa dhana muhimu na kuwa na mifano ya vitendo ya kutumia metakognisheni katika muundo wa wakala wa AI.

Malengo ya Kujifunza

Baada ya kukamilisha somo hili, utaweza:

  1. Kuelewa athari za mizunguko ya hoja katika ufafanuzi wa wakala.
  2. Kutumia mbinu za upangaji na tathmini kusaidia wakala wanaojiendesha wenyewe.
  3. Kuunda wakala wako mwenyewe anayeweza kuendesha msimbo ili kutekeleza kazi.

Utangulizi wa Metakognisheni

Metakognisheni inahusu michakato ya juu ya kifikra inayohusisha kufikiria kuhusu fikra za mtu binafsi. Kwa wakala wa AI, hii inamaanisha kuwa na uwezo wa kutathmini na kurekebisha matendo yao kulingana na uelewa wa nafsi na uzoefu wa zamani. Metakognisheni, au “kufikiria kuhusu kufikiria,” ni dhana muhimu katika maendeleo ya mifumo ya wakala wa AI. Inahusisha mifumo ya AI kuwa na ufahamu wa michakato yao ya ndani na kuwa na uwezo wa kufuatilia, kudhibiti, na kubadilisha tabia zao ipasavyo. Kama tunavyofanya tunapojua hali ya mtu au tunapoangalia tatizo. Uelewa huu wa nafsi unaweza kusaidia mifumo ya AI kufanya maamuzi bora, kugundua makosa, na kuboresha utendaji wao kwa muda- tena ikihusiana na jaribio la Turing na mjadala kuhusu kama AI itachukua nafasi.

Katika muktadha wa mifumo ya wakala wa AI, metakognisheni inaweza kusaidia kushughulikia changamoto kadhaa, kama vile:

Metakognisheni ni Nini?

Metakognisheni, au “kufikiria kuhusu kufikiria,” ni mchakato wa juu wa kifikra unaojumuisha uelewa wa nafsi na udhibiti wa michakato ya kifikra ya mtu binafsi. Katika ulimwengu wa AI, metakognisheni inawawezesha wakala kutathmini na kubadilisha mikakati na matendo yao, na kusababisha uboreshaji wa utatuzi wa matatizo na uwezo wa kufanya maamuzi. Kwa kuelewa metakognisheni, unaweza kubuni wakala wa AI ambao si tu akili zaidi bali pia wenye uwezo wa kuendana na ufanisi zaidi. Katika metakognisheni ya kweli, utaona AI ikitoa hoja wazi kuhusu hoja yake mwenyewe.

Mfano: “Nilipendelea ndege za bei nafuu kwa sababu… Inawezekana napoteza ndege za moja kwa moja, hivyo acheni nirejee tena.”. Kufuata jinsi au kwa nini ilichagua njia fulani.

Umuhimu wa Metakognisheni kwa Wakala wa AI

Metakognisheni ina jukumu muhimu katika muundo wa wakala wa AI kwa sababu kadhaa:

Importance of Metacognition

Sehemu za Wakala wa AI

Kabla ya kuingia kwenye michakato ya metakognisheni, ni muhimu kuelewa sehemu za msingi za wakala wa AI. Wakala wa AI kawaida huwa na:

Sehemu hizi hufanya kazi pamoja kuunda “kikundi cha utaalamu” ambacho kinaweza kutekeleza kazi maalum.

Mfano: Fikiria wakala wa usafiri, huduma za wakala ambao si tu kupanga likizo yako bali pia kubadilisha njia yake kulingana na data za moja kwa moja na uzoefu wa safari za wateja wa zamani.

Mfano: Metakognisheni katika Huduma ya Wakala wa Usafiri

Fikiria unabuni huduma ya wakala wa usafiri inayotumia AI. Wakala huyu, “Wakala wa Usafiri,” husaidia watumiaji kupanga likizo zao. Ili kuingiza metakognisheni, Wakala wa Usafiri unahitaji kutathmini na kurekebisha matendo yake kulingana na uelewa wa nafsi na uzoefu wa zamani. Hapa ni jinsi metakognisheni inaweza kucheza sehemu:

Kazi ya Sasa

Kazi ya sasa ni kusaidia mtumiaji kupanga safari kwenda Paris.

Hatua za Kumaliza Kazi

  1. Kusanya Mapendeleo ya Mtumiaji: Muulize mtumiaji kuhusu tarehe za usafiri, bajeti, mambo anayopenda (kama vile makumbusho, vyakula, ununuzi), na mahitaji maalum yoyote.
  2. Pata Taarifa: Tafuta chaguzi za ndege, malazi, vivutio, na mikahawa inayolingana na mapendeleo ya mtumiaji.
  3. Tengeneza Mapendekezo: Toa ratiba iliyobinafsishwa na maelezo ya ndege, uhifadhi wa hoteli, na shughuli zilizopendekezwa.
  4. Badilisha Kwa Kulingana na Maoni: Muulize mtumiaji maoni kuhusu mapendekezo na fanya marekebisho muhimu.

Rasilimali Zinazohitajika

Uzoefu na Kujitathmini

Wakala wa Usafiri hutumia metakognisheni kutathmini utendaji wake na kujifunza kutoka kwa uzoefu wa zamani. Kwa mfano:

  1. Kuchambua Maoni ya Mtumiaji: Wakala wa Usafiri hukagua maoni ya mtumiaji ili kubaini mapendekezo ambayo yalipokelewa vizuri na yale yasiyopokelewa. Hubadilisha mapendekezo ya baadaye ipasavyo.
  2. Uwezo wa Kuendana: Ikiwa mtumiaji ametaja awali kutotaka maeneo yenye watu wengi, Wakala wa Usafiri atazuia kupendekeza maeneo maarufu wakati wa saa za kilele siku za usafiri zijazo.
  3. Rekebisho la Makosa: Ikiwa Wakala wa Usafiri alifanya kosa katika uhifadhi wa zamani, kama kupendekeza hoteli iliyokuwa imejaa, hujifunza kukagua upatikanaji kwa makini zaidi kabla ya kutoa mapendekezo.

Mfano wa Mjenzi wa Programu

Hapa kuna mfano rahisi wa msimbo wa Travel Agent unapoingiza metakognisheni:

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):
        # Tafuta ndege, hoteli, na vivutio kulingana na mapendeleo
        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)
        # Changanua maoni na rekebisha mapendekezo ya baadaye
        self.user_preferences = adjust_preferences(self.user_preferences, feedback)

# Mfano wa matumizi
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)

Kwa Nini Metakognisheni ni Muhimu

Kwa kuingiza metakognisheni, Wakala wa Usafiri anaweza kutoa mapendekezo ya usafiri ambayo ni binafsi zaidi na sahihi, na kuboresha uzoefu wa mtumiaji kwa ujumla.


2. Upangaji katika Wakala

Upangaji ni sehemu muhimu ya tabia ya wakala wa AI. Inahusisha kufafanua hatua zinazohitajika kufikia lengo, kuzingatia hali ya sasa, rasilimali, na vizingiti vinavyoweza kutokea.

Vipengele vya Upangaji

Mfano: Hapa ni hatua ambazo Wakala wa Usafiri anahitaji kuchukua kusaidia mtumiaji kupanga safari yake kwa ufanisi:

Hatua za Wakala wa Usafiri

  1. Kusanya Mapendeleo ya Mtumiaji
    • Muulize mtumiaji maelezo kuhusu tarehe za usafiri, bajeti, mambo anayopenda, na mahitaji maalum.
    • Mifano: “Utapanga kusafiri lini?” “Bajeti yako ni kiasi gani?” “Ni shughuli gani unazopenda wakati wa likizo?”
  2. Pata Taarifa
    • Tafuta chaguzi za usafiri zinazolingana na mapendeleo ya mtumiaji.
    • Ndege: Tafuta ndege zilizopo ndani ya bajeti ya mtumiaji na tarehe za kusafiri alizotaka.
    • Malazi: Tafuta hoteli au nyumba za kukodisha zinazolingana na mapendeleo ya mtumiaji kuhusu eneo, bei, na huduma.
    • Vitutio na Mikahawa: Tambua vivutio maarufu, shughuli, na maeneo ya chakula yanayolingana na mambo anayopenda mtumiaji.
  3. Tengeneza Mapendekezo
    • Kusanya taarifa zilizopatikana katika ratiba iliyobinafsishwa.
    • Toa maelezo kama chaguzi za ndege, uhifadhi wa hoteli, na shughuli zilizopendekezwa, ukihakikisha mapendekezo yanalingana na mapendeleo ya mtumiaji.
  4. Wasilisha Ratiba kwa Mtumiaji
    • Shiriki ratiba iliyopendekezwa na mtumiaji ajili ya mapitio.
    • Mfano: “Hii ni ratiba niliyopendekeza kwa safari yako kwenda Paris. Inajumuisha maelezo ya ndege, uhifadhi wa hoteli, na orodha ya shughuli na mikahawa iliyopendekezwa. Niambie maoni yako!”
  5. Kusanya Maoni
    • Muulize mtumiaji maoni kuhusu ratiba iliyopendekezwa.
    • Mifano: “Je, unapenda chaguzi za ndege?” “Je, hoteli inakidhi mahitaji yako?” “Kuna shughuli zozote ungependa kuongeza au kuondoa?”
  6. Badilisha Kulingana na Maoni
    • Rekebisha ratiba kulingana na maoni ya mtumiaji.
    • Fanya marekebisho muhimu kwa upangaji ndege, malazi na mapendekezo ya shughuli ili kuendana zaidi na mapendeleo ya mtumiaji.
  7. Uthibitisho wa Mwisho
    • Wasilisha ratiba iliyosasishwa kwa mtumiaji kwa uthibitisho wa mwisho.
    • Mfano: “Nimefanya marekebisho kulingana na maoni yako. Hii ni ratiba iliyosahihishwa. Je, kila kitu kinaonekana sawa kwako?”
  8. Fanya Uhifadhi na Thibitisha
    • Mara mtumiaji atakubali ratiba, endelea na uhifadhi wa ndege, malazi, na shughuli zozote zilizopangwa awali.
    • Tuma maelezo ya uthibitisho kwa mtumiaji.
  9. Toa Msaada Endelevu
    • Kuwa tayari kusaidia mtumiaji na mabadiliko au maombi ya ziada kabla na wakati wa safari yao.
    • Mfano: “Kama utahitaji msaada zaidi wakati wa safari yako, jisikie huru kuwasiliana nami wakati wowote!”

Mfano wa Mwingiliano

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)

# Mfano wa matumizi ndani ya ombi la booing
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)

3. Mfumo wa RAG wa Marekebisho

Kwanza anza kwa kuelewa tofauti kati ya Kifaa cha RAG na Upakuaji wa Muktadha wa kabla

RAG vs Context Loading

Uzalishaji Ukioungwa Mkono na Upataji (RAG)

RAG huunganisha mfumo wa upataji na mfano wa kizazi. Wakati swali linaulizwa, mfumo wa upataji huchukua hati muhimu au data kutoka chanzo cha nje, na taarifa hii inayotolewa hutumika kuongeza pembejeo kwa mfano wa kizazi. Hii inasaidia mfano kutoa majibu sahihi zaidi na yanayofaa muktadha.

Katika mfumo wa RAG, wakala hutafuta taarifa muhimu kutoka kwenye hifadhidata ya maarifa na kuitumia kuzalisha majibu au matendo yanayofaa.

Mbinu ya RAG ya Marekebisho

Mbinu ya RAG ya Marekebisho inalenga kutumia mbinu za RAG kurekebisha makosa na kuboresha usahihi wa wakala wa AI. Hii inajumuisha:

  1. Mbinu ya Kuendeleza: Kutumia maelekezo maalum kuongoza wakala katika kupata taarifa muhimu.
  2. Kifaa: Kutekeleza algoriti na mifumo inayowezesha wakala kutathmini umuhimu wa taarifa iliyo pata na kutoa majibu sahihi.
  3. Tathmini: Kuendelea kutathmini utendaji wa wakala na kufanya marekebisho ili kuboresha usahihi na ufanisi wake.

Mfano: RAG ya Marekebisho katika Wakala wa Utafutaji

Fikiria wakala wa utafutaji anayepata taarifa kutoka intaneti kujibu maswali ya mtumiaji. Mbinu ya RAG ya Marekebisho inaweza kujumuisha:

  1. Mbinu ya Kuendeleza: Kuunda maswali ya utafutaji kulingana na maelezo ya mtumiaji.
  2. Kifaa: Kutumia lugha ya asili na algoriti za mashine kujifunza kupanga na kuchuja matokeo ya utafutaji.
  3. Tathmini: Kuchambua maoni ya watumiaji kubaini na kurekebisha makosa katika taarifa zilizopatikana.

RAG ya Marekebisho katika Wakala wa Usafiri

RAG ya Marekebisho (Uzalishaji Ukioungwa Mkono na Upataji) huongeza uwezo wa AI kupata na kutoa taarifa wakati ikirekebisha usahihi wake. Turejee jinsi Wakala wa Usafiri anavyoweza kutumia Mbinu ya RAG ya Marekebisho kutoa mapendekezo ya usafiri sahihi zaidi na yenye uhusiano.

Hii inajumuisha:

Hatua za Kutekeleza RAG ya Marekebisho katika Wakala wa Usafiri

  1. Mwingiliano wa Awali na Mtumiaji
    • Wakala wa Usafiri hukusanya mapendeleo ya awali kutoka kwa mtumiaji, kama vile mahali pa kwenda, tarehe za usafiri, bajeti, na mambo anayopenda.
    • Mfano:

      preferences = {
          "destination": "Paris",
          "dates": "2025-04-01 to 2025-04-10",
          "budget": "moderate",
          "interests": ["museums", "cuisine"]
      }
      
  2. Upataji wa Taarifa
    • Wakala wa Usafiri anapokea taarifa kuhusu ndege, malazi, vivutio, na mikahawa kulingana na mapendeleo ya mtumiaji.
    • Mfano:

      flights = search_flights(preferences)
      hotels = search_hotels(preferences)
      attractions = search_attractions(preferences)
      
  3. Kuzalisha Mapendekezo ya Awali
    • Wakala wa Usafiri hutumia taarifa zilizopatikana kutengeneza ratiba iliyobinafsishwa.
    • Mfano:

      itinerary = create_itinerary(flights, hotels, attractions)
      print("Suggested Itinerary:", itinerary)
      
  4. Kusanya Maoni ya Mtumiaji
    • Wakala wa Usafiri huomba maoni kuhusu mapendekezo ya awali.
    • Mfano:

      feedback = {
          "liked": ["Louvre Museum"],
          "disliked": ["Eiffel Tower (too crowded)"]
      }
      
  5. Mchakato wa RAG wa Marekebisho
    • Mbinu ya Kuendeleza: Wakala wa Usafiri huunda maswali mapya ya utafutaji kulingana na maoni ya mtumiaji.
      • Mfano:

        if "disliked" in feedback:
            preferences["avoid"] = feedback["disliked"]
        
    • Kifaa: Wakala wa Usafiri hutumia algoriti kupanga na kuchuja matokeo mapya ya utafutaji, akisisitiza umuhimu kulingana na maoni ya mtumiaji.
      • Mfano:

        new_attractions = search_attractions(preferences)
        new_itinerary = create_itinerary(flights, hotels, new_attractions)
        print("Updated Itinerary:", new_itinerary)
        
    • Tathmini: Wakala wa Usafiri huendelea kutathmini umuhimu na usahihi wa mapendekezo yake kwa kuchambua maoni ya mtumiaji na kufanya marekebisho yanayohitajika.
      • Mfano:

        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)
        

Mfano wa Vitendo

Hapa kuna mfano rahisi wa msimbo wa Python unaoingiza mbinu ya RAG ya Marekebisho katika Wakala wa Usafiri:

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

# Mfano wa matumizi
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)

Upakuaji wa Muktadha wa Kabla

Kupakia Muktadha Kabla Haja kunahusisha kupakia muktadha unaofaa au taarifa za msingi kwenye modeli kabla ya kuchakata swali. Hii ina maana modeli ina ufikiaji wa taarifa hii tangu mwanzo, ambayo inaweza kusaidia kutoa majibu yenye taarifa zaidi bila hitaji la kupata data za ziada wakati wa mchakato.

Hapa kuna mfano rahisi wa jinsi kupakia muktadha kabla ya haja kunavyoweza kuonekana kwa programu ya wakala wa usafiri katika Python:

class TravelAgent:
    def __init__(self):
        # Chukua maeneo maarufu na taarifa zao kabla
        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):
        # Pata taarifa za mahali kutoka kwenye muktadha uliosababishwa awali
        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}."

# Mfano wa matumizi
travel_agent = TravelAgent()
print(travel_agent.get_destination_info("Paris"))
print(travel_agent.get_destination_info("Tokyo"))

Ufafanuzi

  1. **Uanzishaji (__init__ method)**: Darasa la TravelAgent` linapakia kina kamusi yenye taarifa kuhusu maeneo maarufu kama Paris, Tokyo, New York, na Sydney. Kamusi hii ina maelezo kama nchi, sarafu, lugha, na vivutio vikuu kwa kila eneo.

  2. Kupata Taarifa (get_destination_info method): Wakati mtumiaji anapouliza kuhusu eneo maalum, njia ya get_destination_info huchukua taarifa zinazohitajika kutoka kwenye kamusi iliyopakiwa kabla.

Kwa kupakia muktadha mapema, programu ya wakala wa usafiri inaweza kujibu haraka maswali ya mtumiaji bila hitaji la kupata taarifa hizi kutoka chanzo kingine kwa wakati halisi. Hii hufanya programu kuwa bora zaidi na yenye majibu ya haraka.

Kuanzisha Mpango kwa Lengo Kabla ya Kurudia Mzunguko

Kuanzisha mpango kwa lengo kunahusisha kuanza na malengo wazi au matokeo yanayotarajiwa akilini. Kwa kufafanua lengo hili mapema, modeli inaweza kulitumia kama kanuni huduma wakati wote wa mchakato wa kurudia mzunguko. Hii husaidia kuhakikisha kila mzunguko unakaribia kufikia matokeo yanayotakiwa, na kufanya mchakato kuwa mzuri na ulio na lengo wazi.

Hapa kuna mfano wa jinsi unavyoweza kuanzisha mpango wa safari kwa lengo kabla ya kurudia kwa wakala wa usafiri katika Python:

Hali Halisi

Mwakala wa usafiri anataka kupanga likizo iliyobinafsishwa kwa mteja. Lengo ni kuunda ratiba ya safari inayoongeza furaha ya mteja kulingana na mapendeleo yao na bajeti.

Hatua

  1. Tambua mapendeleo na bajeti ya mteja.
  2. Anzisha mpango wa awali kulingana na mapendeleo haya.
  3. Rudia mpango kuboresha, ukiwa unalenga furaha ya mteja.

Msimbo wa Python

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']

# Mfano wa matumizi
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)

Ufafanuzi wa Msimbo

  1. **Uanzishaji (__init__ method)**: Darasa la TravelAgent` linaanzishwa na orodha ya maeneo yanayoweza kutembelewa, kila kikiwa na sifa kama jina, gharama, na aina ya shughuli.

  2. Kuanzisha Mpango (bootstrap_plan method): Njia hii huunda mpango wa awali wa safari kulingana na mapendeleo na bajeti ya mteja. Huirudia kwenye orodha ya maeneo na kuiweka kwenye mpango ikiwa inalingana na mapendeleo na inahakikisha haizidi bajeti.

  3. Kulinganisha Mapendeleo (match_preferences method): Njia hii huangalia kama eneo linalolingana na mapendeleo ya mteja.

  4. Kurudia Mpango (iterate_plan method): Njia hii huboresha mpango wa awali kwa kujaribu kubadilisha kila eneo kwenye mpango na linganifu bora zaidi, zikizingatiwa mapendeleo ya mteja na vizingiti vya bajeti.

  5. Kuhesabu Gharama (calculate_cost method): Njia hii huhesabu jumla ya gharama za mpango wa sasa, ikijumuisha eneo jipya linalowezekana.

Mfano wa Matumizi

Kwa kuanzisha mpango kwa lengo wazi (mfano, kuongeza furaha ya mteja) na kurudia kuboresha mpango, wakala wa usafiri anaweza kuunda ratiba ya safari iliyobinafsishwa na iliyoboreshwa kwa mteja. Njia hii huhakikisha kwamba mpango wa safari unaendana na mapendeleo na bajeti ya mteja tangu mwanzo na kuboreshwa kila wakati wa mzunguko.

Kutumia Faida za LLM kwa Upangaji Upya na Kufungasha Alama

Mifano Mikubwa ya Lugha (LLMs) inaweza kutumika kwa kupanga upya na kufungasha alama kwa kutathmini umuhimu na ubora wa nyaraka zilizopatikana au majibu yaliyotengenezwa. Hapa kuna jinsi inavyofanya kazi:

Kukusanya: Hatua ya awali ya ukusanyaji huleta seti ya nyaraka au majibu yanayowezekana kulingana na swali.

Upangaji Upya: LLM inatathmini wagombea hawa na kuwapangia upya kulingana na umuhimu na ubora wao. Hatua hii huhakikisha taarifa zinazofaa na bora zipo mbele kabisa.

Kufungasha Alama: LLM hutumia alama kwa kila mgombea, zikionyesha umuhimu na ubora wao. Hii husaidia kuchagua jibu bora au hati bora kwa mtumiaji.

Kwa kutumia LLM kwa kupanga upya na kufungasha alama, mfumo unaweza kutoa taarifa sahihi na zinazofaa kiuktadha zaidi, kuboresha uzoefu wa mtumiaji kwa ujumla.

Hapa kuna mfano wa jinsi wakala wa usafiri anavyoweza kutumia Mfano Mkubwa wa Lugha (LLM) kwa kupanga upya na kufungasha alama maeneo ya kusafiria kulingana na mapendeleo ya mtumiaji katika Python:

Hali Halisi - Usafiri Kulingana na Mapendeleo

Mwakala wa usafiri anataka kupendekeza maeneo bora ya kusafiria kwa mteja kulingana na mapendeleo yao. LLM itasaidia kupanga upya na kufungasha alama maeneo kuhakikisha chaguzi zinazofaa zaidi zinaonyeshwa.

Hatua:

  1. Kusanya mapendeleo ya mtumiaji.
  2. Pata orodha ya maeneo yanayowezekana ya kusafiria.
  3. Tumia LLM kupanga upya na kufungasha alama maeneo kulingana na mapendeleo ya mtumiaji.

Hivi ndivyo unavyoweza kusasisha mfano wa awali ili kutumia Azure OpenAI Services:

Mahitaji

  1. Lazima uwe na usajili wa Azure.
  2. Unda rasilimali ya Azure OpenAI na upate ufunguo wako wa API.

Mfano wa Msimbo wa Python

import requests
import json

class TravelAgent:
    def __init__(self, destinations):
        self.destinations = destinations

    def get_recommendations(self, preferences, api_key, endpoint):
        # Tengeneza ombi kwa ajili ya Azure OpenAI
        prompt = self.generate_prompt(preferences)
        
        # Eleza vichwa na maudhui ya ombi
        headers = {
            'Content-Type': 'application/json',
            'Authorization': f'Bearer {api_key}'
        }
        payload = {
            "prompt": prompt,
            "max_tokens": 150,
            "temperature": 0.7
        }
        
        # Piga API ya Azure OpenAI kupata marudio yaliyopangwa upya na yenye alama
        response = requests.post(endpoint, headers=headers, json=payload)
        response_data = response.json()
        
        # Chuja na rudisha mapendekezo
        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

# Mfano wa matumizi
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)

Ufafanuzi wa Msimbo - Msimamizi wa Mapendeleo

  1. Uanzishaji: Darasa la TravelAgent linaanzishwa na orodha ya maeneo yanayowezekana ya kusafiria, kila kikiwa na sifa kama jina na maelezo.

  2. Kupata Mapendekezo (get_recommendations method): Njia hii hutengeneza kauli kwa huduma ya Azure OpenAI kulingana na mapendeleo ya mtumiaji na hufanya maombi ya HTTP POST kwenye API ya Azure OpenAI kupata maeneo yaliyopangiliwa upya na kufungashwa alama.

  3. Kutengeneza Kauli (generate_prompt method): Njia hii huunda kauli kwa Azure OpenAI, ikijumuisha mapendeleo ya mtumiaji na orodha ya maeneo. Kauli hii inaelekeza modeli kupanga upya na kufungasha alama maeneo kulingana na mapendeleo yaliyotolewa.

  4. Upigaji API: Maktaba ya requests inatumika kufanya maombi ya HTTP POST kwa endpoint ya API ya Azure OpenAI. Jibu linaorodhesha maeneo yaliyopangiliwa upya na kufungashwa alama.

  5. Mfano wa Matumizi: Mwakala wa usafiri anakusanya mapendeleo ya mtumiaji (mfano, msisitizo wa kutembelea vivutio vya kisanii na tamaduni mbalimbali) na kutumia huduma ya Azure OpenAI kupata mapendekezo yaliyopangiliwa upya na kufungashwa alama ya maeneo ya kusafiria.

Hakikisha kubadili your_azure_openai_api_key na ufunguo wako halisi wa Azure OpenAI API na https://your-endpoint.com/... na URL halisi ya endpoint ya usambazaji wako wa Azure OpenAI.

Kwa kutumia LLM kwa kupanga upya na kufungasha alama, wakala wa usafiri anaweza kutoa mapendekezo ya kusafiri yanayobinafsishwa na yanayofaa zaidi kwa wateja, kuboresha uzoefu wao kwa jumla.

RAG: Mbinu ya Kuandika Maswali vs Chombo

Uzalishaji wa Kupanuliwa kwa Kupata Taarifa (RAG) unaweza kuwa mbinu ya kuandika maswali na pia chombo katika maendeleo ya mawakala wa AI. Kuuelewa tofauti kati ya hizi mbili kunaweza kusaidia kutumia RAG kwa ufanisi zaidi katika miradi yako.

RAG kama Mbinu ya Kuandika Maswali

Ni nini?

Jinsi inavyofanya kazi:

  1. Tengeneza Maagizo: Tengeneza maagizo au maswali yaliyopangwa vyema kulingana na kazi au ingizo la mtumiaji.
  2. Pata Taarifa: Tumia maagizo kutafuta data inayofaa kutoka kwenye hifadhidata au seti ya taarifa iliyopo.
  3. Tengeneza Jibu: Changanya taarifa zilizopatikana na mifano ya AI yenye uwezo wa uundaji majibu kutoa jibu kamili na linaloshikamana.

Mfano kwa Wakala wa Usafiri:

RAG kama Chombo

Ni nini?

Jinsi inavyofanya kazi:

  1. Uunganaji: Weka RAG ndani ya usanifu wa wakala wa AI, ikiruhusu kusimamia moja kwa moja kazi za kupata na kuundwa kwa majibu.
  2. Uendeshaji Kiotomatiki: Chombo husimamia mchakato mzima, kuanzia kupokea ingizo la mtumiaji hadi kutoa jibu la mwisho, bila hitaji la maagizo maalum.
  3. Ufanisi: Huboresha utendaji wa wakala kwa kuweka mtiririko wa kazi za kupata na kuunda majibu kuwa rahisi na haraka.

Mfano kwa Wakala wa Usafiri:

Mlinganisho

Kipengele Mbinu ya Kuandika Maswali Chombo
Maandalizi au Kiotomatiki Maandamano ya mikono ya maagizo kwa kila swali. Mchakato wa kiotomatiki wa upatikanaji na uzalishaji.
Udhibiti Hutoa udhibiti zaidi juu ya mchakato wa upatikanaji. Huwekzesha na kuendesha mchakato wa upatikanaji na uzalishaji.
Uwezo wa Kubadilika Inaruhusu maagizo yaliyobinafsishwa kulingana na mahitaji. Inafaa zaidi kwa utekelezaji mkubwa.
Ugumu Inahitaji kutengeneza na kurekebisha maagizo. Rahisi kuingiza ndani ya usanifu wa wakala wa AI.

Mifano ya Kivitendo

Mfano wa Mbinu ya Kuandika Maswali:

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)

Mfano wa Chombo:

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)

Kutathmini Umuhimu

Kutathmini umuhimu ni kipengele muhimu katika utendaji wa wakala wa AI. Inahakikisha taarifa zilizopatikana na majibu yaliyotengenezwa na wakala ni sahihi, za kweli, na zenye manufaa kwa mtumiaji. Tuchunguze jinsi ya kutathmini umuhimu katika mawakala wa AI, ikiwa ni pamoja na mifano ya vitendo na mbinu.

Misingi Muhimu Katika Kutathmini Umuhimu

  1. Uelewa wa Muktadha:
    • Wakala lazima aelewe muktadha wa swali la mtumiaji ili kupata na kutoa taarifa zinazofaa.
    • Mfano: Ikiwa mtumiaji anauliza “mikahawa bora huko Paris,” wakala atazingatia mapendeleo ya mtumiaji, kama aina ya chakula na bajeti.
  2. Usahihi:
    • Taarifa zinazotolewa na wakala zinapaswa kuwa sahihi kiutendaji na za sasa.
    • Mfano: Kupendekeza mikahawa ambayo bado iko wazi na ina tathmini nzuri badala ya zile zilizofungwa au za zamani.
  3. Madhumuni ya Mtumiaji:
    • Wakala anapaswa kubaini madhumuni ya mtumiaji nyuma ya swali ili kutoa taarifa zinazofaa zaidi.
    • Mfano: Ikiwa mtumiaji anauliza “hoteli kwa bajeti ndogo,” wakala atazipa kipaumbele chaguzi za bei nafuu.
  4. Mzunguko wa Maoni:
    • Kukusanya na kuchambua maoni ya mtumiaji mara kwa mara husaidia wakala kuboresha mchakato wa kutathmini umuhimu.
    • Mfano: Kujumuisha tathmini na maoni ya watumiaji kuhusu mapendekezo ya awali ili kuboresha majibu ya baadaye.

Mbinu za Kivitendo za Kutathmini Umuhimu

  1. Kupangilia Kwa Alama ya Umuhimu:
    • Panga alama za umuhimu kwa kila kipengee kilichopatikana kulingana na jinsi kinavyolingana na swali na mapendeleo ya mtumiaji.
    • Mfano:

      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
      
  2. Kuchuja na Kupangilia Kwenye Orodha:
    • Chuja vitu visivyohusiana na pangilia vitu vilivyoondolewa kulingana na alama za umuhimu.
    • Mfano:

      def filter_and_rank(items, query):
          ranked_items = sorted(items, key=lambda item: relevance_score(item, query), reverse=True)
          return ranked_items[:10]  # Rudisha vitu 10 vinavyofaa zaidi
      
  3. Usindikaji wa Lugha Asilia (NLP):
    • Tumia mbinu za NLP kuelewa swali la mtumiaji na kupata taarifa zinazofaa.
    • Mfano:

      def process_query(query):
          # Tumia NLP kutoa taarifa muhimu kutoka kwa swali la mtumiaji
          processed_query = nlp(query)
          return processed_query
      
  4. Ujumlishaji wa Maoni ya Mtumiaji:
    • Kusanya maoni ya mtumiaji juu ya mapendekezo yaliyotolewa na uyatumie kurekebisha tathmini za umuhimu kwa siku zijazo.
    • Mfano:

      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
      

Mfano: Kutathmini Umuhimu kwa Wakala wa Usafiri

Hapa kuna mfano wa vitendo wa jinsi Wakala wa Usafiri anavyotathmini umuhimu wa mapendekezo ya kusafiri:

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]  # Rudisha vitu 10 vinavyohusiana zaidi

    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

# Mfano wa matumizi
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)

Kutafuta kwa Madhumuni

Kutafuta kwa madhumuni kunahusisha kuelewa na kufasiri kusudi la msingi au lengo nyuma ya swali la mtumiaji ili kupata na kutoa taarifa inayofaa na yenye manufaa zaidi. Njia hii inapita zaidi ya kulinganisha maneno na inalenga kuelewa mahitaji halisi ya mtumiaji na muktadha.

Misingi Muhimu Katika Kutafuta kwa Madhumuni

  1. Kuelewa Madhumuni ya Mtumiaji:
    • Madhumuni ya mtumiaji yanaweza kugawanywa katika aina kuu tatu: ya taarifa, ya kuvinjari, na ya miamala.
      • Madhumuni ya Taarifa: Mtumiaji anatafuta taarifa kuhusu mada (mfano, “Ni makumbusho bora gani huko Paris?”).
      • Madhumuni ya Kuvinjari: Mtumiaji anataka kuvinjari tovuti au ukurasa maalum (mfano, “Tovuti rasmi ya Louvre Museum”).
      • Madhumuni ya Miamala: Mtumiaji ana nia ya kufanya muamala, kama kuweka tiketi au kununua (mfano, “Weka tiketi ya ndege kwenda Paris”).
  2. Uelewa wa Muktadha:
    • Kuchambua muktadha wa swali la mtumiaji husaidia kubaini madhumuni yao kwa usahihi. Hii ni pamoja na kuzingatia mwingiliano uliopita, mapendeleo ya mtumiaji, na maelezo maalum ya swali la sasa.
  3. Usindikaji wa Lugha Asilia (NLP):
    • Mbinu za NLP hutumika kuelewa na kufasiri maswali ya lugha asilia yanayotolewa na watumiaji. Hii ni pamoja na mambo kama utambuzi wa vyombo, uchambuzi wa hisia, na uchambuzi wa maswali.
  4. Ubinufishaji:
    • Kubinafsisha matokeo ya utafutaji kulingana na historia ya mtumiaji, mapendeleo, na maoni huongeza umuhimu wa taarifa zilizopatikana.

Mfano wa Kivitendo: Kutafuta kwa Madhumuni kwa Wakala wa Usafiri

Tuchukue Wakala wa Usafiri kama mfano kuona jinsi kutafuta kwa madhumuni kunavyoweza kutekelezwa.

  1. Kukusanya Mapendeleo ya Mtumiaji

    class Travel_Agent:
        def __init__(self):
            self.user_preferences = {}
    
        def gather_preferences(self, preferences):
            self.user_preferences = preferences
    
  2. Kuelewa Madhumuni ya Mtumiaji

    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"
    
  3. Uelewa wa Muktadha
    def analyze_context(query, user_history):
        # Changanisha uchunguzi wa sasa na historia ya mtumiaji kuelewa muktadha
        context = {
            "current_query": query,
            "user_history": user_history
        }
        return context
    
  4. Tafuta na Binafsisha Matokeo

    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):
        # Mfano wa mantiki ya utafutaji kwa nia ya taarifa
        results = search_web(f"best {preferences['interests']} in {preferences['destination']}")
        return results
    
    def search_navigation(query):
        # Mfano wa mantiki ya utafutaji kwa nia ya urambazaji
        results = search_web(query)
        return results
    
    def search_transaction(query, preferences):
        # Mfano wa mantiki ya utafutaji kwa nia ya muamala
        results = search_web(f"book {query} to {preferences['destination']}")
        return results
    
    def personalize_results(results, user_history):
        # Mfano wa mantiki ya ubinafsishaji
        personalized = [result for result in results if result not in user_history]
        return personalized[:10]  # Rudisha matokeo 10 bora yaliyo binafsi
    
  5. Mfano wa Matumizi

    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)
    

4. Kutengeneza Msimbo kama Chombo

Wakili wa kutengeneza msimbo hutumia mifano ya AI kuandika na kutekeleza msimbo, kutatua matatizo magumu na kuendesha kazi kwa moja kwa moja.

Wakala wa Kutengeneza Msimbo

Wakala wa kutengeneza msimbo hutumia mifano ya AI ya kizazi kuandika na kutekeleza msimbo. Wakala hawa wanaweza kutatua matatizo magumu, kuendesha kazi kwa moja kwa moja, na kutoa ufahamu muhimu kwa kutengeneza na kuendesha msimbo katika lugha mbalimbali za programu.

Matumizi ya Kivitendo

  1. Uundaji wa Msimbo Kwa Moja kwa Moja: Tengeneza vipande vya msimbo kwa kazi maalum, kama vile uchambuzi wa data, kunyunyizia wavuti, au ujifunzaji wa mashine.
  2. SQL kama RAG: Tumia maswali ya SQL kuchukua na kubadilisha data kutoka kwa hifadhidata.
  3. Kutatua Matatizo: Tengeneza na kuendesha msimbo kutatua matatizo maalum, kama vile kuboresha algorithms au kuchambua data.

Mfano: Wakili wa Kutengeneza Msimbo kwa Uchambuzi wa Data

Fikiria unatengeneza wakala wa kutengeneza msimbo. Hapa ni jinsi inaweza kufanya kazi:

  1. Kazi: Chambua seti ya data ili kubaini mwenendo na mifumo.
  2. Hatua:
    • Pakia seti ya data ndani ya zana ya uchambuzi wa data.
    • Tengeneza maswali ya SQL kuchuja na kujumlisha data.
    • Endesha maswali na toa matokeo.
    • Tumia matokeo kufanya uchoraji na kutoa ufahamu.
  3. Rasilimali Zinazohitajika: Kupata seti ya data, zana za uchambuzi wa data, na uwezo wa SQL.
  4. Uzoefu: Tumia matokeo ya uchambuzi wa zamani kuboresha usahihi na uhalali wa uchambuzi wa baadaye.

Mfano: Wakili wa Kutengeneza Msimbo kwa Wakala wa Usafiri

Katika mfano huu, tutatengeneza wakala wa kutengeneza msimbo, Wakala wa Usafiri, kusaidia watumiaji kupanga safari zao kwa kutengeneza na kuendesha msimbo. Wakili huyu anaweza kushughulikia kazi kama vile kupata chaguzi za safari, kuchuja matokeo, na kuandaa ratiba kwa kutumia AI ya kizazi.

Muhtasari wa Wakili wa Kutengeneza Msimbo

  1. Kukusanya Mapendeleo ya Mtumiaji: Anakusanya maelezo ya mtumiaji kama vile mahali pa kwenda, tarehe za safari, bajeti, na mambo yanayovutia.
  2. Kutengeneza Msimbo wa Kupata Data: Anazalisha vipande vya msimbo vya kupata habari juu ya ndege, hoteli, na vivutio.
  3. Kutekeleza Msimbo Uliotengenezwa: Anaendesha msimbo uliotengenezwa kupata habari halisi kwa wakati.
  4. Kutengeneza Ratiba: Anakusanya data iliyopatikana na kuunda mpango wa safari unaolingana na mtumiaji.
  5. Kurekebisha Kulingana na Maoni: Anapokea maoni kutoka kwa mtumiaji na kutengeneza upya msimbo inapohitajika kurekebisha matokeo.

Utekelezaji Hatua kwa Hatua

  1. Kukusanya Mapendeleo ya Mtumiaji

    class Travel_Agent:
        def __init__(self):
            self.user_preferences = {}
    
        def gather_preferences(self, preferences):
            self.user_preferences = preferences
    
  2. Kutengeneza Msimbo wa Kupata Data

    def generate_code_to_fetch_data(preferences):
        # Mfano: Tengeneza msimbo wa kutafuta ndege kulingana na mapendeleo ya mtumiaji
        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):
        # Mfano: Tengeneza msimbo wa kutafuta hoteli
        code = f"""
        def search_hotels():
            import requests
            response = requests.get('https://api.example.com/hotels', params={preferences})
            return response.json()
        """
        return code
    
  3. Kutekeleza Msimbo Uliotengenezwa

    def execute_code(code):
        # Tekeleza nambari iliyotengenezwa kwa kutumia 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)
    
  4. Kutengeneza Ratiba

    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)
    
  5. Kurekebisha Kulingana na Maoni

    def adjust_based_on_feedback(feedback, preferences):
        # Rekebisha mapendeleo kulingana na maoni ya mtumiaji
        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)
       
    # Tengeneza upya na tekeleza msimbo kwa mapendeleo yaliyosasishwa
    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)
    

Kutumia Uelewa wa Mazingira na Ufafanuzi

Kulingana na muundo wa jedwali kunaweza kuboresha mchakato wa kuunda maswali kwa kutumia uelewa wa mazingira na ufafanuzi.

Hapa kuna mfano wa jinsi hiki kinavyoweza kufanywa:

  1. Kuelewa Muundo: Mfumo utafahamu muundo wa jedwali na kutumia taarifa hii kuimarisha uzalishaji wa maswali.
  2. Kurekebisha Kulingana na Maoni: Mfumo utarekebisha mapendeleo ya mtumiaji kulingana na maoni na kufikiria ni sehemu gani za muundo zinahitaji kusasishwa.
  3. Kutengeneza na Kuendesha Maswali: Mfumo utazalisha na kuendesha maswali kupata taarifa mpya za ndege na hoteli kulingana na mabadiliko ya mapendeleo.

Hapa kuna mfano wa msimbo wa Python uliosasishwa unaojumuisha dhana hizi:

def adjust_based_on_feedback(feedback, preferences, schema):
    # Rekebisha mapendeleo kulingana na maoni ya mtumiaji
    if "liked" in feedback:
        preferences["favorites"] = feedback["liked"]
    if "disliked" in feedback:
        preferences["avoid"] = feedback["disliked"]
    # Hoja kulingana na schema kurekebisha mapendeleo mengine yanayohusiana
    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):
    # Mantiki maalum kurekebisha mapendeleo kulingana na schema na maoni
    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):
    # Tengeneza msimbo wa kupata data za ndege kulingana na mapendeleo yaliyosasishwa
    return f"fetch_flights(preferences={preferences})"

def generate_code_to_fetch_hotels(preferences):
    # Tengeneza msimbo wa kupata data za hoteli kulingana na mapendeleo yaliyosasishwa
    return f"fetch_hotels(preferences={preferences})"

def execute_code(code):
    # iga utendaji wa msimbo na rudisha data bandia
    return {"data": f"Executed: {code}"}

def generate_itinerary(flights, hotels, attractions):
    # Tengeneza ratiba kulingana na ndege, hoteli, na vivutio
    return {"flights": flights, "hotels": hotels, "attractions": attractions}

# Mfano wa schema
schema = {
    "favorites": {"positive_adjustment": "increase", "negative_adjustment": "decrease", "default": "neutral"},
    "avoid": {"positive_adjustment": "decrease", "negative_adjustment": "increase", "default": "neutral"}
}

# Matumizi ya mfano
preferences = {"favorites": "sightseeing", "avoid": "crowded places"}
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
updated_preferences = adjust_based_on_feedback(feedback, preferences, schema)

# Tengeneza upya na utekeleze msimbo na mapendeleo yaliyosasishwa
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)

Maelezo - Uhifadhi Kulingana na Maoni

  1. Uelewa wa Muundo: Kamusi schema inaeleza jinsi mapendeleo yanavyopaswa kurekebishwa kulingana na maoni. Inajumuisha sehemu kama favorites na avoid, huku ikieleza marekebisho yanayohitajika.
  2. Kurekebisha Mapendeleo (mbinu adjust_based_on_feedback): Mbinu hii inarekebisha mapendeleo kulingana na maoni ya mtumiaji na muundo.
  3. Marekebisho Kulingana na Mazingira (mbinu adjust_based_on_environment): Mbinu hii inabinafsisha marekebisho kulingana na muundo na maoni.
  4. Kutengeneza na Kuendesha Maswali: Mfumo unazalisha msimbo wa kupata taarifa mpya za ndege na hoteli kulingana na mapendeleo yaliyorekebishwa na kuiga utekelezaji wa maswali haya.
  5. Kutengeneza Ratiba: Mfumo huunda ratiba iliyosasishwa kulingana na taarifa mpya za ndege, hoteli, na vivutio.

Kwa kufanya mfumo uwe mwenye uelewa wa mazingira na kuwatathmini kulingana na muundo, unaweza kutoa maswali sahihi na yenye maana zaidi, na hivyo kupata mapendekezo bora ya safari na uzoefu wa mtumiaji wa kibinafsi.

Kutumia SQL kama Mbinu ya Uzalishaji wa Data Zilizochaguliwa (RAG)

SQL (Lugha ya Maswali ya Muundo) ni chombo chenye nguvu cha kuingiliana na hifadhidata. Inapotumika kama sehemu ya mbinu ya Uzalishaji wa Data Zilizochaguliwa (RAG), SQL inaweza kuchukua data inayofaa kutoka kwa hifadhidata ili kutoa majibu au hatua katika maajenti wa AI. Tuchambue jinsi SQL inavyotumika kama mbinu ya RAG katika muktadha wa Wakala wa Usafiri.

Dhana Muhimu

  1. Mwingiliano na Hifadhidata:
    • SQL hutumiwa kuuliza hifadhidata, kuchukua taarifa zinazohitajika, na kubadilisha data.
    • Mfano: Kupata taarifa za ndege, hoteli, na vivutio kutoka kwa hifadhidata ya usafiri.
  2. Uunganisho na RAG:
    • Maswali ya SQL huzalishwa kulingana na maelezo na mapendeleo ya mtumiaji.
    • Data iliyochukuliwa hutumika kutoa mapendekezo binafsi au hatua.
  3. Uzalishaji wa Maswali ya Kienyeji:
    • Wakala wa AI huzalisha maswali ya SQL yanayobadilika kulingana na muktadha na mahitaji ya mtumiaji.
    • Mfano: Kurekebisha maswali ya SQL kuchuja matokeo kulingana na bajeti, tarehe, na mambo yanayovutia.

Matumizi

Mfano: Mwakili wa uchambuzi wa data:

  1. Kazi: Chunguza seti ya data kugundua mwenendo.
  2. Hatua:
    • Pakia seti ya data.
    • Tengeneza maswali ya SQL kuchuja data.
    • Endesha maswali na toa matokeo.
    • Tengeneza michoro na ufahamu.
  3. Rasilimali: Upatikanaji wa seti ya data, uwezo wa SQL.
  4. Uzoefu: Tumia matokeo ya zamani kuboresha uchambuzi wa baadaye.

Mfano wa Kivitendo: Kutumia SQL katika Wakala wa Usafiri

  1. Kukusanya Mapendeleo ya Mtumiaji

    class Travel_Agent:
        def __init__(self):
            self.user_preferences = {}
    
        def gather_preferences(self, preferences):
            self.user_preferences = preferences
    
  2. Kutengeneza Maswali ya SQL

    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
    
  3. Kuendesha Maswali ya SQL

    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
    
  4. Kutengeneza Mapendekezo

    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)
    

Mfano wa Maswali ya SQL

  1. Swali la Ndege

    SELECT * FROM flights WHERE destination='Paris' AND dates='2025-04-01 to 2025-04-10' AND budget='moderate';
    
  2. Swali la Hoteli

    SELECT * FROM hotels WHERE destination='Paris' AND budget='moderate';
    
  3. Swali la Vivutio

    SELECT * FROM attractions WHERE destination='Paris' AND interests='museums, cuisine';
    

Kwa kutumia SQL kama sehemu ya mbinu ya Uzalishaji wa Data Zilizochaguliwa (RAG), mawakala wa AI kama Wakala wa Usafiri wanaweza kuchukua na kutumia data inayofaa kwa wakati halisi ili kutoa mapendekezo sahihi na ya kibinafsi.

Mfano wa Metakognition

Ili kuonyesha utekelezaji wa metakognition, hebu tujenge wakili rahisi anayefikiria juu ya mchakato wake wa kufanya maamuzi anapounga mkono tatizo. Kwa mfano huu, tutaunda mfumo ambapo wakili anajaribu kuboresha uchaguzi wa hoteli, kisha kutathmini sababu zake na kurekebisha mbinu yake pale anapofanya makosa au uchaguzi usiofaa.

Tutaiga hili kwa kutumia mfano rahisi ambapo wakili huchagua hoteli kulingana na mchanganyiko wa bei na ubora, lakini atafikiria juu ya maamuzi yake na kurekebisha ipasavyo.

Jinsi hii inavyoonyesha metakognition:

  1. Uamuzi wa Awali: Wakili atachagua hoteli ya bei nafuu zaidi, bila kuelewa athari za ubora.
  2. Kufikiria na Kutathmini: Baada ya uchaguzi wa awali, wakili atakagua kama hoteli ilikuwa “mbaya” kupitia maoni ya mtumiaji. Ikiwa atagundua ubora wa hoteli ulikuwa chini sana, atafikiria juu ya mchakato wake.
  3. Kurekebisha Mkakati: Wakili atarekebisha mkakati wake kulingana na tafakari hiyo na kubadilisha kutoka “bei nafuu zaidi” hadi “ubora wa juu zaidi”, hivyo kuboresha mchakato wa maamuzi kwa mara zijazo.

Hapa kuna mfano:

class HotelRecommendationAgent:
    def __init__(self):
        self.previous_choices = []  # Hifadhi hoteli zilizochaguliwa hapo awali
        self.corrected_choices = []  # Hifadhi chaguzi zilizorekebishwa
        self.recommendation_strategies = ['cheapest', 'highest_quality']  # Mikakati inayopatikana

    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]
        # Tuseme tuna maoni ya mtumiaji yanayotueleza kama uchaguzi wa mwisho ulikuwa mzuri au si mzuri
        user_feedback = self.get_user_feedback(last_choice)

        if user_feedback == "bad":
            # Rekebisha mkakati ikiwa uchaguzi uliopita haukuridhisha
            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"

# Simuliza orodha ya hoteli (bei na ubora)
hotels = [
    {'name': 'Budget Inn', 'price': 80, 'quality': 6},
    {'name': 'Comfort Suites', 'price': 120, 'quality': 8},
    {'name': 'Luxury Stay', 'price': 200, 'quality': 9}
]

# Unda wakala
agent = HotelRecommendationAgent()

# Hatua 1: Wakala anapendekeza hoteli kwa kutumia mkakati wa "bei nafuu zaidi"
recommended_hotel = agent.recommend_hotel(hotels, 'cheapest')
print(f"Recommended hotel (cheapest): {recommended_hotel['name']}")

# Hatua 2: Wakala anafikiria juu ya uchaguzi na kurekebisha mkakati ikiwa ni lazima
reflection_result = agent.reflect_on_choice()
print(reflection_result)

# Hatua 3: Wakala anapendekeza tena, mara hii kwa kutumia mkakati uliorekebishwa
adjusted_recommendation = agent.recommend_hotel(hotels, 'highest_quality')
print(f"Adjusted hotel recommendation (highest_quality): {adjusted_recommendation['name']}")

Uwezo wa Metakognition kwa Wakala

Kiini hapa ni uwezo wa wakili wa:

Hii ni aina rahisi ya metakognition ambapo mfumo unaweza kurekebisha mchakato wake wa kufikiri kulingana na maoni ya ndani.

Hitimisho

Metakognition ni chombo chenye nguvu kinachoweza kuboresha kwa kiasi kikubwa uwezo wa maajenti wa AI. Kwa kujumuisha michakato ya metakognitive, unaweza kubuni maajenti wenye akili zaidi, yanayoweza kubadilika, na yenye ufanisi. Tumia rasilimali za ziada kuchunguza zaidi ulimwengu wa kuvutia wa metakognition katika maajenti wa AI.

Je, Una Maswali Zaidi Kuhusu Muundo wa Metakognition?

Jiunge na Microsoft Foundry Discord kukutana na wanafunzi wengine, kuhudhuria saa za ofisi na kupata majibu kwa maswali yako kuhusu Maajenti wa AI.

Somo lililopita

Muundo wa Maajenti Wengi

Somo lijalo

Maajenti wa AI Katika Uzalishaji


Kiaruhusi: Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI Co-op Translator. Ingawa tunajitahidi kuhakikisha usahihi, tafadhali fahamu kuwa tafsiri za moja kwa moja zinaweza kuwa na makosa au upotoshaji. Nyaraka ya asili katika lugha yake ya asili inapaswa kuzingatiwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu na ya binadamu inapendekezwa. Hatuna dhima kwa maelewano mabaya au tafsiri potofu zitokanazo na matumizi ya tafsiri hii.