ai-agents-for-beginners

Multi-Agent Design

(Bonyeza picha hapo juu kutazama video ya somo hili)

Metacognition katika Wakala wa AI

Utangulizi

Karibu kwenye somo kuhusu metacognition katika wakala wa AI! Sura hii imeundwa kwa ajili ya wanaoanza ambao wana shauku ya kujua jinsi wakala wa AI wanavyoweza kufikiria kuhusu michakato yao ya kufikiria wenyewe. Mwisho wa somo hili, utaelewa dhana muhimu na utakuwa na mifano ya vitendo ya kutumia metacognition katika muundo wa wakala wa AI.

Malengo ya Kujifunza

Baada ya kumaliza somo hili, utaweza:

  1. Kuelewa athari za mizunguko ya hoja katika ufafanuzi wa wakala.
  2. Kutumia mbinu za upangaji na tathmini kusaidia wakala wa kujiendesha wenyewe kurekebisha makosa.
  3. Kuunda wakala wako mwenye uwezo wa kutengeneza msimbo ili kutekeleza majukumu.

Utangulizi wa Metacognition

Metacognition inahusu michakato ya daraja la juu ya kifikra inayohusisha kufikiria kuhusu ufikiriaji wa mtu mwenyewe. Kwa wakala wa AI, hii inamaanisha kuwa na uwezo wa kutathmini na kurekebisha hatua zao kulingana na ufahamu wa nafsi na uzoefu wa zamani. Metacognition, 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 uwezo wa kufuatilia, kudhibiti, na kubadilisha tabia zao ipasavyo. Kama tunavyofanya sisi tunaposoma mazingira au kuangalia tatizo. Ufahamu huu wa nafsi unaweza kusaidia mifumo ya AI kufanya maamuzi bora, kubaini makosa, na kuboresha utendaji wao kwa muda - tena likirudi kwenye mtihani wa Turing na mjadala juu ya kama AI itaangamiza.

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

Metacognition ni Nini?

Metacognition, au “kufikiria kuhusu kufikiria,” ni mchakato wa juu wa kifikra unaojumuisha ufahamu wa nafsi na udhibiti wa michakato ya kifikra ya mtu. Katika ulimwengu wa AI, metacognition huwapa wakala uwezo wa kutathmini na kubadilisha mikakati yao na hatua, jambo linalosababisha uboreshaji wa utatuzi wa matatizo na uamuzi. Kwa kuelewa metacognition, unaweza kubuni wakala wa AI ambao sio tu werevu zaidi lakini pia wana uwezo wa kubadilika na ufanisi zaidi. Katika metacognition halisi, utaona AI ikitoa hoja wazi kuhusu hoja zake mwenyewe.

Mfano: “Nilipa kipaumbele ndege za bei nafuu kwa sababu… Labda ninakosa ndege za moja kwa moja, hivyo nieleze tena.” Kufuatilia jinsi au kwanini ilichagua njia fulani.

Umuhimu wa Metacognition kwa Wakala wa AI

Metacognition inachukua nafasi muhimu katika muundo wa wakala wa AI kwa sababu kadhaa:

Umuhimu wa Metacognition

Sehemu za Wakala wa AI

Kabla ya kuingia katika michakato ya metacognition, ni muhimu kuelewa sehemu za msingi za wakala wa AI. Wakala wa AI kwa kawaida hujumuisha:

Sehemu hizi hufanya kazi pamoja kuunda “kitengo cha utaalam” ambacho kinaweza kutekeleza majukumu maalum.

Mfano: Fikiria wakala wa usafiri, huduma za wakala zisizopanga tu likizo yako bali pia kubadilisha njia yake kulingana na data ya wakati halisi na uzoefu wa safari za wateja wa zamani.

Mfano: Metacognition katika Huduma ya Wakala wa Usafiri

Fikiria unabuni huduma ya wakala wa usafiri inayotumia AI. Wakala huyu, “Mwakala wa Usafiri,” husaidia watumiaji kupanga likizo zao. Ili kujumuisha metacognition, Mwakala wa Usafiri inahitaji kutathmini na kurekebisha hatua zake kulingana na ufahamu wa nafsi na uzoefu wa zamani. Hapa ni jinsi metacognition inaweza kuchukua nafasi:

Kazi ya Sasa

Kazi ya sasa ni kusaidia mtumiaji kupanga safari kwenda Paris.

Hatua za Kukamilisha Kazi

  1. Kusanya Mapendeleo ya Mtumiaji: Muulize mtumiaji kuhusu tarehe za safari, bajeti, maslahi (mfano, makumbusho, chakula, ununuzi), na mahitaji maalum.
  2. Pata Taarifa: Tafuta chaguzi za ndege, malazi, vivutio vya kutembelea, na mikahawa inayolingana na mapendeleo ya mtumiaji.
  3. Tengeneza Mapendekezo: Toa ratiba iliyobinafsishwa yenye maelezo ya ndege, uhifadhi wa hoteli, na shughuli zilizopendekezwa.
  4. Rekebisha Kwa Kuweka Tathmini: Muulize mtumiaji maoni kuhusu mapendekezo na fanya marekebisho yanayohitajika.

Rasilimali Zinazohitajika

Uzoefu na Kujitathmini

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

  1. Kuchambua Maoni ya Mtumiaji: Mwakala wa Usafiri hurekebisha mapendekezo yake ya baadaye kulingana na maoni ya mtumiaji kuhusu mapendekezo yaliyopokelewa vizuri na yasiyopokelewa.
  2. Kubadilika: Ikiwa mtumiaji ameonyesha awali kutopendelea maeneo yenye msongamano, Mwakala wa Usafiri atajiepusha kupendekeza vivutio maarufu wakati wa nyakati za kilele siku zijazo.
  3. Marekebisho ya Makosa: Ikiwa Mwakala wa Usafiri alifanya kosa katika uhifadhi wa zamani, kama kupendekeza hoteli iliyorekebishwa kikamilifu, hujifunza kuangalia upatikanaji kwa uangalifu kabla ya kutoa mapendekezo.

Mfano wa Mtaalamu wa Kuendeleza

Hapa ni mfano rahisi wa jinsi msimbo wa Mwakala wa Usafiri unavyoweza kuonekana unapojumuisha metacognition:

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 Metacognition Inahitajika

Kwa kujumuisha metacognition, Mwakala wa Usafiri anaweza kutoa mapendekezo ya kusafiri yaliyobinafsishwa zaidi na sahihi zaidi, kuimarisha uzoefu wa mtumiaji kwa ujumla.


2. Upangaji katika Wakala

Upangaji ni sehemu muhimu ya tabia ya wakala wa AI. Unahusisha kufafanua hatua zinazohitajika kufikia lengo, kwa kuzingatia hali ya sasa, rasilimali, na vikwazo vinavyoweza kuwepo.

Vipengele vya Upangaji

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

Hatua za Mwakala wa Usafiri

  1. Kusanya Mapendeleo ya Mtumiaji
    • Muulize mtumiaji maelezo kuhusu tarehe za safari, bajeti, maslahi, na mahitaji maalum.
    • Mifano: “Utapanga kusafiri lini?” “Bajeti yako ni kiasi gani?” “Ni shughuli gani unazopenda wakati wa likizo?”
  2. Tafuta Taarifa
    • Tafuta chaguzi za usafiri zinazolingana na mapendeleo ya mtumiaji.
    • Ndege: Tafuta ndege zinazopatikana ndani ya bajeti ya mtumiaji na tarehe za kusafiri anazopendelea.
    • Malazi: Tafuta hoteli au mali za kukodisha zinazolingana na mapendeleo ya mtumiaji kuhusu eneo, bei, na vifaa.
    • Vivutio na Mikahawa: Tambua vivutio maarufu, shughuli, na chaguzi za mlo zinazolingana na maslahi ya mtumiaji.
  3. Tengeneza Mapendekezo
    • Kusanya taarifa zilizopatikana katika ratiba maalum.
    • Toa maelezo kama chaguzi za ndege, uhifadhi wa hoteli, na shughuli zilizopendekezwa, ukihakikisha kurekebisha mapendekezo kwa mapendeleo ya mtumiaji.
  4. Wasilisha Ratiba kwa Mtumiaji
    • Shiriki ratiba iliyopendekezwa kwa mtumiaji kwa ajili ya ukaguzi wake.
    • Mfano: “Huu ni ratiba iliyopendekezwa kwa safari yako ya Paris. Inajumuisha maelezo ya ndege, utaratibu wa hoteli, na orodha ya shughuli na mikahawa iliyopendekezwa. Nipe maoni yako!”
  5. Kusanya Maoni
    • Muulize mtumiaji kuhusu maoni juu ya ratiba iliyopendekezwa.
    • Mifano: “Je, unapenda chaguzi za ndege?” “Je, hoteli ni nzuri kwa mahitaji yako?” “Je, kuna shughuli yoyote ungependa kuongeza au kuondoa?”
  6. Rekebisha Kwa Kuweka Maoni
    • Badilisha ratiba kulingana na maoni ya mtumiaji.
    • Fanya marekebisho ya lazima kwa chaguzi za ndege, malazi, na shughuli ili ziendane na mapendeleo ya mtumiaji.
  7. Kukamilisha Uthibitisho
    • Wasilisha ratiba iliyosasishwa kwa mtumiaji kwa uthibitisho wa mwisho.
    • Mfano: “Nimefanya marekebisho kulingana na maoni yako. Hii ni ratiba iliyosasishwa. Je, kila kitu kinaonekana sawa kwako?”
  8. Kuhifadhi na Kukamilisha Uhifadhi
    • Mara mtumiaji anakubali ratiba, anza kuhifadhi ndege, malazi, na shughuli yoyote iliyopangwa mapema.
    • Tuma maelezo ya uthibitisho kwa mtumiaji.
  9. Kutoa Msaada Endelevu
    • Baki tayari kusaidia mtumiaji kwa mabadiliko au maombi ya ziada kabla na wakati wa safari yao.
    • Mfano: “Kama unahitaji msaada wowote zaidi wakati wa safari yako, jisikie huru kunifikia 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 kutukanwa
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, tuanze kwa kuelewa tofauti kati ya Zana ya RAG na Upakiaji wa Muktadha wa Awali

RAG vs Context Loading

Uzalishaji Ulioboreshwa kwa Kupata Taarifa (RAG)

RAG huunganisha mfumo wa upatikanaji na modeli ya kizazi. Wakati swali linapoombwa, mfumo wa upatikanaji huchukua nyaraka au data zinazohusiana kutoka chanzo cha nje, na taarifa hii inayopatikana hutumika kuongeza taarifa kwenye modeli ya kizazi. Hii husaidia modeli kutoa majibu sahihi na yanayolingana na muktadha.

Katika mfumo wa RAG, wakala huchukua taarifa muhimu kutoka kwenye hifadhidata ya maarifa na kuitumia kutoa majibu au hatua zinazofaa.

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 inahusisha:

  1. Mbinu ya Kuhamasisha: Kutumia amsha maalum kumwelekeza wakala kuchukua taarifa muhimu.
  2. Zana: Kutumia algorithimu na mifumo inayomuwezesha wakala kutathmini umuhimu wa taarifa iliyopatikana na kutoa majibu sahihi.
  3. Tathmini: Kuendelea kutathmini utendaji wa wakala na kufanya marekebisho kuboresha usahihi na ufanisi.

Mfano: RAG ya Marekebisho katika Wakala wa Utafutaji

Fikiria wakala wa utafutaji ambao huchukua taarifa kutoka mtandao kujibu maswali ya mtumiaji. Mbinu ya RAG ya Marekebisho inaweza kujumuisha:

  1. Mbinu ya Kuhamasisha: Kuunda maswali ya utafutaji kulingana na maoni ya mtumiaji.
  2. Zana: Kutumia usindikaji wa lugha asilia na algorithimu za kujifunza mashine kupangilia na kusefa matokeo ya utafutaji.
  3. Tathmini: Kuchambua maoni ya mtumiaji kubaini na kurekebisha upotovu wa taarifa zilizopatikana.

RAG ya Marekebisho katika Wakala wa Usafiri

RAG ya Marekebisho (Uzalishaji Ulioboreshwa kwa Kupata Taarifa) inaboresha uwezo wa AI kupata na kuzalisha taarifa huku ikirekebisha upotovu wowote. Tuchukulie kama Mwakala wa Usafiri anaweza kutumia mbinu ya RAG ya Marekebisho kutoa mapendekezo ya usafiri yaliyo sahihi zaidi na yanayofaa.

Hii inahusisha:

Hatua za Kutekeleza RAG ya Marekebisho katika Mwakala wa Usafiri

  1. Mwingiliano wa Awali na Mtumiaji
    • Mwakala wa Usafiri anakusanya mapendeleo ya awali kutoka kwa mtumiaji, kama vile marudio, tarehe za safari, bajeti, na maslahi.
    • Mfano:

      preferences = {
          "destination": "Paris",
          "dates": "2025-04-01 to 2025-04-10",
          "budget": "moderate",
          "interests": ["museums", "cuisine"]
      }
      
  2. Kupata Taarifa
    • Mwakala wa Usafiri anapata 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. Kutoa Mapendekezo ya Awali
    • Mwakala wa Usafiri hutumia taarifa hiyo kutoa ratiba iliyobinafsishwa.
    • Mfano:

      itinerary = create_itinerary(flights, hotels, attractions)
      print("Suggested Itinerary:", itinerary)
      
  4. Kusanya Maoni ya Mtumiaji
    • Mwakala wa Usafiri humuuliza mtumiaji maoni juu ya mapendekezo ya awali.
    • Mfano:

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

        if "disliked" in feedback:
            preferences["avoid"] = feedback["disliked"]
        
    • Zana: Mwakala wa Usafiri hutumia algorithimu kupanga na kusefa matokeo mapya ya utafutaji huku akaweka mkazo kwenye 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: Mwakala 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 Kifedha

Hapa ni mfano rahisi wa msimbo wa Python unaojumuisha mbinu ya RAG ya Marekebisho katika Mwakala 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)

Upakiaji wa Muktadha wa Awali

Kuongeza Muktadha Kabla ya Muda kunahusisha kupakia muktadha unaofaa au taarifa za awali ndani ya mfano kabla ya kushughulikia swali. Hii inamaanisha mfano unakuwa na upatikanaji wa taarifa hizi tangu mwanzo, ambayo inaweza kusaidia kutoa majibu yaliyo na taarifa zaidi bila haja ya kupata data za ziada wakati wa mchakato.

Hapa kuna mfano uliorahisishwa wa jinsi kuongeza muktadha kabla ya muda ungeweza kuonekana kwa programu ya wakala wa usafiri kwa Python:

class TravelAgent:
    def __init__(self):
        # Pakia awali maeneo maarufu na taarifa zao
        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 maeneo kutoka kwa muktadha uliopakiwa 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"))

Maelezo

  1. Uanzishaji (__init__ method): Darasa la TravelAgent linapakia 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 anauliza kuhusu eneo fulani, njia ya get_destination_info hupata taarifa zinazohitajika kutoka kwenye kamusi iliyopakiwa awali.

Kwa kupakia muktadha kabla, programu ya wakala wa usafiri inaweza kujibu maswali ya watumiaji haraka bila kufungua taarifa hizi kutoka chanzo cha nje kwa wakati halisi. Hii inafanya programu kuwa na ufanisi zaidi na kujibu kwa haraka.

Kuanzisha Mpango kwa Lengo Kabla ya Kurudia Mchakato

Kuanzisha mpango kwa lengo kunahusisha kuanza na lengo wazi au matokeo yanayotarajiwa akilini. Kwa kufafanua lengo hili mapema, mfano unaweza kulitumia kama kanuni ya mwongozo katika mchakato wa kurudia. Hii husaidia kuhakikisha kila mrudia unakaribia kufanikisha matokeo yaliyotarajiwa, na kufanya mchakato kuwa na ufanisi zaidi na mkazo.

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

Hali Halisi

Wakala 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. Eleza mapendeleo na bajeti ya mteja.
  2. Anzisha mpango wa awali kulingana na mapendeleo haya.
  3. Rudia kuboresha mpango, ukiboresha 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)

Maelezo ya Msimbo

  1. Uanzishaji (__init__ method): Darasa la TravelAgent linaanzishwa na orodha ya maeneo yanayoweza kwenda, kila moja likiwa 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. Hupitia orodha ya maeneo na kuyaongeza kwenye mpango ikiwa yanakidhi mapendeleo ya mteja na yanalingana na bajeti.

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

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

  5. Kuhesabu Gharama (calculate_cost method): Njia hii huhesabu gharama jumla ya mpango wa sasa, ikiwa ni pamoja na eneo jipya linalowezekana.

Mfano wa Matumizi

Kwa kuanzisha mpango na lengo wazi (mfano, kuongeza furaha ya mteja) na kurudia kuboresha mpango, wakala wa usafiri anaweza kuunda ratiba ya safari iliyobinafsishwa na iliyoboreshwa kwa mteja. Mbinu hii inahakikisha mpango wa safari unalingana na mapendeleo na bajeti ya mteja tangu mwanzo na kuboresha kwa kila kurudia.

Kutumia Faida za LLM kwa Urejeshaji wa Nafasi na Kuweka Alama

Mifumo Mikubwa ya Lugha (LLMs) inaweza kutumika kwa urejeshaji upya wa nafasi na kuweka alama kwa kutathmini uhusiano na ubora wa nyaraka zilizopatikana au majibu yaliyotengenezwa. Hivi ndivyo inavyofanya kazi:

Uchukuzi: Hatua ya awali ya kuchukua huleta seti ya nyaraka au majibu yanayowezekana kulingana na swali.

Urejeshaji Upya wa Nafasi: LLM huathithi wagombea hawa na kurejesha nafasi zao upya kulingana na uhusiano na ubora wao. Hatua hii huhakikisha taarifa yenye umuhimu zaidi na yenye ubora wa juu ndiyo inaonyeshwa kwanza.

Kuweka Alama: LLM inaweka alama kwa kila mgombea, ikionyesha uhusiano na ubora wake. Hii husaidia kuchagua jibu au hati bora kwa mtumiaji.

Kwa kutumia LLM kwa urejeshaji upya na kuweka alama, mfumo unaweza kutoa taarifa sahihi zaidi na zinazofaa kihistoria, kuboresha uzoefu wa mtumiaji kwa ujumla.

Hapa kuna mfano wa jinsi wakala wa usafiri anavyoweza kutumia Mfano Mkubwa wa Lugha (LLM) kwa kurejesha nafasi na kuweka alama ya maeneo ya safari kulingana na mapendeleo ya mtumiaji kwa Python:

Hali Halisi - Safari Kulingana na Mapendeleo

Wakala wa usafiri anataka kupendekeza maeneo bora ya safari kwa mteja kulingana na mapendeleo yao. LLM itasaidia kurejeshaji nafasi na kuweka alama maeneo kuhakikisha chaguo zenye uhusiano zaidi zinaonyeshwa.

Hatua:

  1. Kusanya mapendeleo ya mtumiaji.
  2. Pata orodha ya maeneo yanayowezekana ya safari.
  3. Tumia LLM kurejesha nafasi na kuweka alama maeneo kulingana na mapendeleo ya mtumiaji.

Hivi ndivyo unavyoweza kuboresha mfano wa awali kutumia Azure OpenAI Services:

Mahitaji

  1. Unahitaji kuwa na usajili wa Azure.
  2. Tengeneza rasilimali ya Azure OpenAI na upate API key yako.

Msimbo wa Mfano 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 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 maeneo 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)

Maelezo ya Msimbo - Msajili wa Mapendeleo

  1. Uanzishaji: Darasa la TravelAgent linaanzishwa na orodha ya maeneo yanayowezekana ya safari, kila moja likiwa na sifa kama jina na maelezo.

  2. Kupata Mapendekezo (get_recommendations method): Njia hii hutengeneza maelekezo kwa huduma ya Azure OpenAI kulingana na mapendeleo ya mtumiaji na kufanya ombi la HTTP POST kwa API ya Azure OpenAI kupata maeneo yaliyorekebishwa upya na kuwekwa alama.

  3. Kutengeneza Maelekezo (generate_prompt method): Njia hii huandaa maelekezo kwa Azure OpenAI, ikiwa ni pamoja na mapendeleo ya mtumiaji na orodha ya maeneo. Maelekezo yanaongoza mfano kurejesha nafasi na kuweka alama maeneo kulingana na mapendeleo yaliyotolewa.

  4. Ombi la API: Maktaba ya requests inatumika kutuma ombi la HTTP POST kwa eneo la API la Azure OpenAI. Jibu lina maeneo yaliyoorejeshwa upya na kuwekwa alama.

  5. Mfano wa Matumizi: Wakala wa usafiri anakusanya mapendeleo ya mtumiaji (mfano, shauku ya kutembelea vivutio na tamaduni mbalimbali) na kutumia huduma ya Azure OpenAI kupata mapendekezo yaliyorekebishwa na kuwekwa alama.

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

Kwa kutumia LLM kwa kurejesha nafasi na kuweka alama, wakala wa usafiri anaweza kutoa mapendekezo ya safari yaliyobinafsishwa zaidi na yanayofaa kwa wateja, kuboresha uzoefu wao kwa ujumla.

RAG: Mbinu ya Kuanzisha Maelekezo dhidi ya Zana

Uzalishaji ulioboreshwa kwa Urejeshaji (RAG) unaweza kuwa mbinu ya kuanzisha maelekezo na zana katika maendeleo ya mawakala wa AI. Kuelewa tofauti kati ya hizi mbili kunaweza kusaidia kutumia RAG kwa ufanisi zaidi katika miradi yako.

RAG kama Mbinu ya Kuanzisha Maelekezo

Nini Hiki?

Jinsi inavyofanya kazi:

  1. Tengeneza Maelekezo: Tengeneza maelekezo yaliyopangwa vizuri au maswali kulingana na kazi au maelezo ya mtumiaji.
  2. Rudisha Taarifa: Tumia maelekezo kutafuta data inayofaa kutoka kwenye hifadhidata au mkusanyiko uliopo.
  3. Tengeneza Jibu: Changanya taarifa zilizopatikana na mifano ya AI ya uanzishaji kutengeneza jibu kamili na linaloeleweka.

Mfano kwa Wakala wa Usafiri:

RAG kama Zana

Nini Hiki?

Jinsi inavyofanya kazi:

  1. Uingizaji: Ingiza RAG ndani ya usanifu wa wakala wa AI, ukiruhusu kushughulikia moja kwa moja kazi za urejeshaji na uzalishaji.
  2. Kujiendesha Kwao: Zana inasimamia mchakato mzima, kutoka kupokea maelezo ya mtumiaji hadi kutoa jibu la mwisho, bila kuhitaji maelekezo maalum kwa kila hatua.
  3. Ufanisi: Inaboresha utendaji wa wakala kwa kurahisisha mchakato wa urejeshaji na uzalishaji, kuwezesha majibu ya haraka na sahihi zaidi.

Mfano kwa Wakala wa Usafiri:

Ulinganishi

Kipengele Mbinu ya Kuanzisha Maelekezo Zana
Manual vs Automatic Kuandaa maelekezo kwa kila swali kwa mkono. Mchakato wa otomatiki wa urejeshaji na uzalishaji.
Udhibiti Hutoa udhibiti zaidi juu ya mchakato wa urejeshaji. Huongeza ufanisi na otomatiki wa urejeshaji na uzalishaji.
Uwekaji wa Kawaida Huruhusu maelekezo ya kibinafsi kulingana na mahitaji. Inafaa zaidi kwa utekelezaji mkubwa.
Ugumu Inahitaji utayarishaji na marekebisho ya maelekezo. Rahisi kuingiza ndani ya usanifu wa wakala wa AI.

Mifano ya Kivitendo

Mfano wa Mbinu ya Kuanzisha Maelekezo:

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 Zana:

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 Uhusiano wa Taarifa

Kutathmini uhusiano wa taarifa ni kipengele muhimu cha utendaji wa wakala wa AI. Inahakikisha taarifa zilizopatikana na zinazotengenezwa na wakala ni sahihi, za muhimu, na zinatumika kwa mtumiaji. Tuchunguze jinsi ya kutathmini uhusiano wa taarifa kwa mawakala wa AI, ikiwa ni pamoja na mifano ya vitendo na mbinu.

Misingi Muhimu ya Kutathmini Uhusiano

  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 aanze kwa kuangalia mapendeleo ya mtumiaji, kama aina ya chakula na bajeti.
  2. Usahihi:
    • Taarifa zinazotolewa na wakala zinapaswa kuwa za kweli na za kisasa.
    • Mfano: Kupendekeza mikahawa iliyo wazi sasa yenye mapitio mazuri badala ya zile zilizofungwa au za zamani.
  3. Nia ya Mtumiaji:
    • Wakala anapaswa kutambua nia ya mtumiaji nyuma ya swali ili kutoa taarifa zinazofaa zaidi.
    • Mfano: Ikiwa mtumiaji anauliza “hoteli za bajeti,” wakala anapaswa kuipa kipaumbele chaguzi za bei nafuu.
  4. Mzunguko wa Maoni:
    • Kukusanya na kuchambua maoni ya mtumiaji kwa mara kwa mara husaidia wakala kuboresha mchakato wa kutathmini uhusiano wa taarifa.
    • Mfano: Kuingiza viwango na maoni ya watumiaji juu ya mapendekezo yaliyopita ili kuboresha majibu ya baadaye.

Mbinu za Kivitendo za Kutathmini Uhusiano

  1. Kuweka Alama ya Uhusiano:
    • Weka alama ya uhusiano 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 Kuweka Nafasi:
    • Chuja vitu visivyohusiana na panga vilivyobaki kulingana na alama za uhusiano.
    • 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 vinavyohusiana 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 kuu kutoka kwa swali la mtumiaji
          processed_query = nlp(query)
          return processed_query
      
  4. Uingiliaji wa Maoni ya Mtumiaji:
    • Kusanya maoni ya mtumiaji juu ya mapendekezo yaliyotolewa na utumie kurekebisha tathmini za uhusiano za baadaye.
    • 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 Uhusiano kwa Wakala wa Usafiri

Hapa kuna mfano wa vitendo wa jinsi Wakala wa Usafiri anaweza kutathmini uhusiano wa mapendekezo ya safari:

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 Nia

Kutafuta kwa nia kunahusisha kuelewa na kutafsiri kusudi au lengo nyuma ya swali la mtumiaji ili kupata na kutoa taarifa zinazofaa na za muhimu zaidi. Mbinu hii haijalishi tu maneno kufanana bali inalenga kuelewa mahitaji halisi na muktadha wa mtumiaji.

Misingi Muhimu ya Kutafuta kwa Nia

  1. Kuelewa Nia ya Mtumiaji:
    • Nia ya mtumiaji inaweza kugawanyika katika aina kuu tatu: ya taarifa, ya urambazaji, na ya muamala.
      • Nia ya Taarifa: Mtumiaji anatafuta taarifa kuhusu mada fulani (mfano, “Makumbusho bora huko Paris?”).
      • Nia ya Urambazaji: Mtumiaji anataka kuelekeza kwenye tovuti au ukurasa maalum (mfano, “Tovuti rasmi ya Makumbusho ya Louvre”).
      • Nia ya Muamala: Mtumiaji anakusudia kufanya muamala, kama kuweka tiketi ya ndege au kufanya manunuzi (mfano, “Weka tiketi ya ndege kwenda Paris”).
  2. Uelewa wa Muktadha:
    • Kuchambua muktadha wa swali la mtumiaji husaidia kubaini nia yao kwa usahihi. Hii ni pamoja na kuzingatia mwingiliano wa awali, mapendeleo ya mtumiaji, na maelezo maalum ya swali la sasa.
  3. Usindikaji wa Lugha Asilia (NLP):
    • Mbinu za NLP zinatumika kuelewa na kutafsiri maswali ya lugha asilia yaliyotolewa na watumiaji. Hii ni pamoja na kazi kama utambuzi wa kielelezo, uchambuzi wa hisia, na uchambuzi wa swali.
  4. Ubinafsishaji:
    • Kubinafsisha matokeo ya utafutaji kulingana na historia, mapendeleo, na maoni ya mtumiaji kunaboresha uhusiano wa taarifa zinazopatikana.

Mfano wa Kivitendo: Kutafuta kwa Nia kwa Wakala wa Usafiri

Tuchukue Wakala wa Usafiri kama mfano kuona jinsi kutafuta kwa nia 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 Nia 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):
        # Changanya ombi la sasa na historia ya mtumiaji ili 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 kuvinjari
        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 ya juu yaliyo binafsishwa
    
  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

Maajenti wa kutengeneza msimbo hutumia mifano ya AI kuandika na kutekeleza msimbo, kutatua matatizo magumu na kuendesha kazi kiotomatiki.

Maajenti wa Kutengeneza Msimbo

Maajenti wa kutengeneza msimbo hutumia mifano ya AI inayozalisha kuandika na kutekeleza msimbo. Maajenti haya yanaweza kutatua matatizo magumu, kuendesha kazi kiotomatiki, na kutoa ufahamu muhimu kwa kutengeneza na kuendesha msimbo katika lugha mbalimbali za programu.

Matumizi ya Kivitendo

  1. Uundaji wa Msimbo Kiotomatiki: Tengeneza vipande vya msimbo kwa kazi maalum, kama vile uchambuzi wa data, kuvaa tovuti, au mashine ya kujifunza.
  2. SQL kama RAG: Tumia maswali ya SQL kupata na kuendesha data kutoka kwa benki za data.
  3. Kutatua Matatizo: Unda na endesha msimbo kutatua matatizo maalum, kama kuboresha algoriti au kuchambua data.

Mfano: Mwakilishi wa Kutengeneza Msimbo kwa Uchambuzi wa Data

Fikiria unayo muundo wa mwakilishi wa kutengeneza msimbo. Hapa ni jinsi unavyoweza kufanya kazi:

  1. Kazi: Changanua seti ya data ili kubaini mwelekeo na mifumo.
  2. Hatua:
    • Pakia seti ya data kwenye chombo cha uchambuzi wa data.
    • Tengeneza maswali ya SQL kuchuja na kujumlisha data.
    • Endesha maswali na upate matokeo.
    • Tumia matokeo kutengeneza michoro na ufahamu.
  3. Rasilimali Zinazohitajika: Upatikanaji wa seti ya data, vyombo vya uchambuzi wa data, na uwezo wa SQL.
  4. Uzoefu: Tumia matokeo ya uchambuzi wa zamani kuboresha usahihi na umuhimu wa uchambuzi wa baadaye.

Mfano: Mwakilishi wa Kutengeneza Msimbo kwa Wakala wa Usafiri

Katika mfano huu, tutaunda mwakilishi wa kutengeneza msimbo, Wakala wa Usafiri, kusaidia watumiaji kupanga safari zao kwa kutengeneza na kutekeleza msimbo. Mwakilishi huyu anaweza kushughulikia kazi kama vile kupata chaguo za usafiri, kuchuja matokeo, na kuandaa ratiba kwa kutumia AI inayozalisha.

Muhtasari wa Mwakilishi wa Kutengeneza Msimbo

  1. Kukusanya Mapendeleo ya Mtumiaji: Hukusanya maelezo kutoka kwa mtumiaji kama vile mahali pa kwenda, tarehe za safari, bajeti, na maslahi.
  2. Kutengeneza Msimbo kwa Kupata Data: Hutengeneza vipande vya msimbo kupata data kuhusu ndege, hoteli, na vivutio.
  3. Kuendesha Msimbo Uliotengenezwa: Huendesha msimbo kutafuta taarifa za wakati halisi.
  4. Kutengeneza Ratiba: Huunganisha data iliyopatikana kuwa mpango wa safari binafsi.
  5. Kurekebisha Kulingana na Maoni: Hupokea maoni ya mtumiaji na kutengeneza msimbo tena ikiwa ni lazima kuboresha 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 kwa 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. Kuendesha Msimbo Uliotengenezwa

    def execute_code(code):
        # Tekeleza msimbo uliotengenezwa 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 endesha 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 akili

Kulingana na muundo wa jedwali kunaweza kuongeza mchakato wa kutengeneza maswali kwa kutumia uelewa wa mazingira na akili.

Hapa kuna mfano wa jinsi hili linavyoweza kufanywa:

  1. Kuelewa Muundo: Mfumo utaelewa muundo wa jedwali na kutumia taarifa hii kupata msingi wa kutengeneza maswali.
  2. Kurekebisha Kulingana na Maoni: Mfumo utarekebisha mapendeleo ya mtumiaji kulingana na maoni na kufikiri ni sehemu gani za muundo zinahitaji sasisho.
  3. Kutengeneza na Kuendesha Maswali: Mfumo utatengeneza na kuendesha maswali kupata taarifa za ndege na hoteli zilizosasishwa kulingana na mapendeleo mapya.

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 skimu 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 ya kurekebisha mapendeleo kulingana na skimu 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):
    # Fanya onyesho la utekelezaji 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 skimu
schema = {
    "favorites": {"positive_adjustment": "increase", "negative_adjustment": "decrease", "default": "neutral"},
    "avoid": {"positive_adjustment": "decrease", "negative_adjustment": "increase", "default": "neutral"}
}

# Mfano wa matumizi
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 - Kuingiza Kati Kulingana na Maoni

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

Kwa kufanya mfumo uwe na uelewa wa mazingira na kufikiri kulingana na muundo, unaweza kutengeneza maswali sahihi na yenye umuhimu zaidi, ambayo hupelekea mapendekezo bora ya safari na uzoefu wa mtumiaji ulio binafsi zaidi.

Kutumia SQL kama Mbinu ya Uzalishaji-iliyoongezwa kwa Upataji (RAG)

SQL (Lugha ya Maswali Iliyopangwa) ni chombo chenye nguvu cha kuingiliana na benki za data. Inapotumika kama sehemu ya mbinu ya Uzalishaji-iliyoongezwa kwa Upataji (RAG), SQL inaweza kupata data muhimu kutoka kwa benki za data ili kuarifu na kuunda majibu au hatua katika maajenti wa AI. Tuchunguze jinsi SQL inaweza kutumika kama mbinu ya RAG katika muktadha wa Wakala wa Usafiri.

Dhana Muhimu

  1. Mwingiliano na Benki za Data:
    • SQL hutumiwa kuulizia benki za data, kupata taarifa muhimu, na kuendesha data.
    • Mfano: Kupata maelezo ya ndege, taarifa za hoteli, na vivutio kutoka kwa benki ya data ya usafiri.
  2. Integration na RAG:
    • Maswali ya SQL hutengenezwa kulingana na maelezo na mapendeleo ya mtumiaji.
    • Data iliyopatikana hutumika kuunda mapendekezo binafsi au hatua.
  3. Uzalishaji wa Maswali ya Kitaaluma:
    • Ajenti wa AI hutengeneza maswali ya SQL ya muktadha na mahitaji ya mtumiaji.
    • Mfano: Kubinafsisha maswali ya SQL kuchuja matokeo kulingana na bajeti, tarehe, na maslahi.

Matumizi

Mfano: Mwakilishi wa uchambuzi wa data:

  1. Kazi: Changanua seti ya data kutafuta mwelekeo.
  2. Hatua:
    • Pakia seti ya data.
    • Tengeneza maswali ya SQL kuchuja data.
    • Endesha maswali na upate 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)
    

Mifano ya 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-iliyoongezwa kwa Upataji (RAG), maajenti wa AI kama Wakala wa Usafiri wanaweza kupata na kutumia data muhimu kwa kuwawezesha kutoa mapendekezo sahihi na binafsi.

Mfano wa Metakognition

Ili kuonesha utekelezaji wa metakognition, hebu tuunde wakala rahisi anayezungumzia mchakato wake wa kufanya maamuzi wakati anapotatua tatizo. Kwa mfano huu, tutaunda mfumo ambapo wakala anajitahidi kuboresha uchaguzi wa hoteli, lakini kisha atakagua akili yake na kurekebisha mkakati wake anapofanya makosa au uchaguzi usio mzuri.

Tutafanya mfano huu kwa kutumia mfano rahisi ambapo wakala huchagua hoteli kulingana na mchanganyiko wa bei na ubora, lakini atafanya “kutafakari” juu ya maamuzi yake na kurekebisha ipasavyo.

Hii inaonyesha metakognition kwa njia gani:

  1. Uamuzi wa Awali: Wakala atachagua hoteli ya bei nafuu zaidi, bila kuelewa athari ya ubora.
  2. Kutafakari na Tathmini: Baada ya uchaguzi wa awali, wakala atakagua kama hoteli ni “chaguo baya” kwa kutumia maoni ya mtumiaji. Ikiwa atagundua kuwa ubora wa hoteli ulikuwa chini mno, atatafakari juu ya fikra zake.
  3. Kurekebisha Mkakati: Wakala atarekebisha mkakati wake kulingana na tafakari yake na kubadilisha kutoka “bei nafuu zaidi” hadi “ubora wa juu zaidi”, hivyo kuboresha mchakato wa kufanya maamuzi katika mzunguko ujao.

Hapa ni mfano:

class HotelRecommendationAgent:
    def __init__(self):
        self.previous_choices = []  # Hifadhi hoteli zilizochaguliwa awali
        self.corrected_choices = []  # Hifadhi uchaguzi uliosahihishwa
        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]
        # Tuchukulie tuna maoni ya mtumiaji yanayotueleza kama uchaguzi wa mwisho ulikuwa mzuri au la
        user_feedback = self.get_user_feedback(last_choice)

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

# Tengeneza 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}
]

# Tengeneza wakala
agent = HotelRecommendationAgent()

# Hatua ya 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 ya 2: Wakala anafikiria juu ya uchaguzi na kurekebisha mkakati inapobidi
reflection_result = agent.reflect_on_choice()
print(reflection_result)

# Hatua ya 3: Wakala anapendekeza tena, wakati huu akitumia mkakati uliorekebishwa
adjusted_recommendation = agent.recommend_hotel(hotels, 'highest_quality')
print(f"Adjusted hotel recommendation (highest_quality): {adjusted_recommendation['name']}")

Uwezo wa Metakognition wa Maajenti

Muhimu hapa ni uwezo wa wakala wa:

Hii ni aina rahisi ya metakognition ambapo mfumo una uwezo wa kurekebisha mchakato wake wa fikra kulingana na maoni ya ndani.

Hitimisho

Metakognition ni chombo chenye nguvu kinachoweza kuboresha uwezo wa maajenti wa AI kwa kiasi kikubwa. Kwa kuingiza mchakato wa metakognitivi, unaweza kubuni maajenti wenye akili zaidi, wanaobadilika, na wenye ufanisi. Tumia rasilimali za ziada kuchunguza zaidi ulimwengu wa kustaajabisha wa metakognition katika maajenti wa AI.

Una Maswali Zaidi kuhusu Mufano wa Ubunifu wa Metakognition?

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

Somo Lililopita

Mfano wa Ubunifu wa Maajenti Wengi

Somo Lijalo

Maajenti wa AI katika Uzalishaji


Kionyozo: Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI Co-op Translator. Ingawa tunajitahidi kupata usahihi, tafadhali fahamu kwamba tafsiri za kiotomatiki zinaweza kuwa na makosa au upungufu wa usahihi. Hati ya asili katika lugha yake halisi inapaswa kuchukuliwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu inayofanywa na binadamu inapendekezwa. Hatutojibu kwa kuelewa vibaya au tafsiri potofu zinazotokea kutokana na matumizi ya tafsiri hii.