精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

AI Agents-2 | 手把手教你:從零開始打造AI智能體 原創

發布于 2025-3-24 10:36
瀏覽
0收藏

這個系列文章旨在為AI代理(AI Agent)提供全面的概述,深入研究其特征,組成部分和類型,同時探索其進化,挑戰和潛在的未來方向。

在??上一篇文章??中,我們深入探討了AI智能體的特性、組成、演變、挑戰以及未來可能性。今天,我們要更進一步,手把手教你用Python從零搭建一個AI智能體。這個智能體可以根據用戶輸入做出決策,選擇合適的工具,并執行相應任務。話不多說,讓我們立刻開始吧!

一、什么是AI智能體?

簡單來說,AI智能體就是一個能夠自主感知環境、做出決策并采取行動以實現特定目標的實體。智能體的復雜程度千差萬別,從簡單地對刺激做出反應的智能體,到能夠學習并隨時間適應的高級智能體,種類繁多。

常見的智能體類型有:

  1. 反應型智能體:直接對環境變化做出反應,沒有內部記憶。
  2. 基于模型的智能體:利用內部的世界模型來做出決策。
  3. 目標型智能體:根據特定目標規劃行動。
  4. 效用型智能體:基于效用函數評估潛在行動,以最大化結果。

具體例子包括聊天機器人、推薦系統和自動駕駛汽車,它們各自利用不同類型的智能體高效、智能地完成任務。

我們今天要搭建的智能體,核心組件包括:

  • 模型:智能體的“大腦”,負責處理輸入并生成響應。
  • 工具:智能體可以根據用戶請求執行的預定義函數。
  • 工具箱:智能體可以使用的工具集合。
  • 系統提示:指導智能體如何處理用戶輸入并選擇合適工具的指令集。

二、搭建智能體的準備工作

AI Agents-2 | 手把手教你:從零開始打造AI智能體-AI.x社區

在動手之前,先確保你的系統滿足以下條件:

(一)Python環境搭建

你需要安裝Python來運行AI智能體。以下是搭建環境的步驟:

1.安裝Python(推薦3.8及以上版本)訪問python.org,下載并安裝Python。驗證安裝是否成功:

python --version

2.創建虛擬環境(推薦)使用虛擬環境管理依賴項是個好習慣:

python -m venv ai_agents_env
source ai_agents_env/bin/activate  # Windows系統用:ai_agents_env\Scripts\activate

3.安裝依賴項進入項目目錄后,安裝所需的依賴項:

pip install -r requirements.txt

(二)本地部署Ollama

Ollama是一個用于高效運行和管理本地語言模型的工具。以下是安裝和配置步驟:

1.下載并安裝Ollama訪問Ollama官網,下載適合你操作系統的安裝包,并按照說明進行安裝。

2.驗證Ollama安裝運行以下命令檢查Ollama是否安裝成功:

ollama --version

3.拉取模型(如有需要)如果你的智能體實現需要特定模型,可以通過以下命令拉取:

ollama pull mistral  # 將“mistral”替換為你需要的模型

三、搭建智能體的具體步驟

AI Agents-2 | 手把手教你:從零開始打造AI智能體-AI.x社區

(一)搭建環境

除了Python,我們還需要安裝一些核心庫,比如??requests???、??json???和??termcolor???,此外,我們還會用到??dotenv??來管理環境變量。

pip install requests termcolor python-dotenv

(二)定義模型類

智能體需要一個模型來處理用戶輸入。我們將創建一個??OllamaModel??類,它通過本地API與模型交互并生成響應。以下是基礎實現:

from termcolor import colored
import os
from dotenv import load_dotenv
load_dotenv()

### 模型
import requests
import json

class OllamaModel:
    def __init__(self, model, system_prompt, temperature=0, stop=None):
        """
        初始化OllamaModel,設置模型名稱、系統提示、溫度和停止標記。
        """
        self.model_endpoint = "http://localhost:11434/api/generate"
        self.temperature = temperature
        self.model = model
        self.system_prompt = system_prompt
        self.headers = {"Content-Type": "application/json"}
        self.stop = stop

    def generate_text(self, prompt):
        """
        根據用戶輸入生成響應。
        """
        payload = {
            "model": self.model,
            "format": "json",
            "prompt": prompt,
            "system": self.system_prompt,
            "stream": False,
            "temperature": self.temperature,
            "stop": self.stop
        }

        try:
            response = requests.post(
                self.model_endpoint, 
                headers=self.headers, 
                data=json.dumps(payload)
            )
            response_json = response.json()
            response_text = response_json['response']
            response_dict = json.loads(response_text)

            print(colored(f"\n\n模型響應:{response_dict}", "cyan"))
            return response_dict
        except requests.RequestException as e:
            return {"error": f"調用模型時出錯!{str(e)}"}

這個類通過模型名稱、系統提示、溫度和停止標記初始化,并通過??generate_text??方法向模型API發送請求并返回響應。

(三)為智能體創建工具

接下來,我們需要為智能體創建一些工具。這些工具是簡單的Python函數,用于執行特定任務。比如一個基礎計算器和一個字符串反轉器:

import json
import operator

def basic_calculator(input_str):
    """
    執行兩個數字的數值運算。
    """
    try:
        if isinstance(input_str, dict):
            input_dict = input_str
        else:
            input_dict = json.loads(input_str.replace("'", "\"").strip().strip("\""))
        
        ifnot all(key in input_dict for key in ['num1', 'num2', 'operation']):
            return"輸入錯誤:必須包含'num1'、'num2'和'operation'"
        
        num1 = float(input_dict['num1'])
        num2 = float(input_dict['num2'])
        operation = input_dict['operation'].lower()

        operations = {
            'add': operator.add,
            'plus': operator.add,
            'subtract': operator.sub,
            'minus': operator.sub,
            'multiply': operator.mul,
            'times': operator.mul,
            'divide': operator.truediv,
            'floor_divide': operator.floordiv,
            'modulus': operator.mod,
            'power': operator.pow
        }

        if operation notin operations:
            returnf"不支持的操作:'{operation}'。支持的操作有:{', '.join(operations.keys())}"

        if operation in ['divide', 'floor_divide', 'modulus'] and num2 == 0:
            return"除數不能為零!"

        result = operations[operation](num1, num2)
        returnf"結果是:{result:.6f}".rstrip('0').rstrip('.')
    except Exception as e:
        returnf"計算出錯:{str(e)}"

def reverse_string(input_string):
    """
    反轉字符串。
    """
    ifnot isinstance(input_string, str):
        return"輸入必須是字符串!"
    reversed_string = input_string[::-1]
    returnf"反轉后的字符串是:{reversed_string}"

(四)構建工具箱

??ToolBox??類用于存儲智能體可以使用的工具,并為每個工具提供描述:

class ToolBox:
    def __init__(self):
        """
        初始化工具箱。
        """
        self.tools_dict = {}

    def store(self, functions_list):
        """
        存儲工具函數的名稱和描述。
        """
        for func in functions_list:
            self.tools_dict[func.__name__] = func.__doc__
        return self.tools_dict

    def tools(self):
        """
        返回存儲的工具描述。
        """
        tools_str = ""
        for name, doc in self.tools_dict.items():
            tools_str += f"{name}: \"{doc}\"\n"
        return tools_str.strip()

這個類可以幫助智能體了解可用的工具及其功能。

(五)創建智能體類

智能體需要思考、選擇合適的工具并執行它。以下是??Agent??類的實現:

agent_system_prompt_template = """
你是一個智能AI助手,可以調用以下工具。你的回答必須始終是以下JSON格式:
{{
    "tool_choice": "工具名稱",
    "tool_input": "工具輸入"
}}

工具列表及使用場景:

1. basic_calculator:用于任何數學計算
   - 輸入格式:{{"num1": 數字, "num2": 數字, "operation": "加/減/乘/除"}}
   - 示例:
     輸入:"15加7"
     輸出:{{"tool_choice": "basic_calculator", "tool_input": {{"num1": 15, "num2": 7, "operation": "add"}}}}

2. reverse_string:用于任何文本反轉請求
   - 輸入格式:直接輸入需要反轉的文本
   - 示例:
     輸入:"反轉'Hello'"
     輸出:{{"tool_choice": "reverse_string", "tool_input": "Hello"}}

3. no_tool:用于一般性對話或問題
   - 示例:
     輸入:"你是誰?"
     輸出:{{"tool_choice": "no_tool", "tool_input": "我是你的AI助手,可以幫你計算數學題、反轉文本或回答問題。"}}

請記住:你的回答必須始終是有效的JSON格式,包含"tool_choice"和"tool_input"字段。
"""

class Agent:
    def __init__(self, tools, model_service, model_name, stop=None):
        """
        初始化智能體,傳入工具列表和模型。
        """
        self.tools = tools
        self.model_service = model_service
        self.model_name = model_name
        self.stop = stop

    def prepare_tools(self):
        """
        準備工具并返回工具描述。
        """
        toolbox = ToolBox()
        toolbox.store(self.tools)
        tool_descriptions = toolbox.tools()
        return tool_descriptions

    def think(self, prompt):
        """
        根據用戶輸入生成響應。
        """
        tool_descriptions = self.prepare_tools()
        agent_system_prompt = agent_system_prompt_template.format(tool_descriptinotallow=tool_descriptions)

        model_instance = self.model_service(
            model=self.model_name,
            system_prompt=agent_system_prompt,
            temperature=0,
            stop=self.stop
        )

        agent_response_dict = model_instance.generate_text(prompt)
        return agent_response_dict

    def work(self, prompt):
        """
        解析響應并執行工具。
        """
        agent_response_dict = self.think(prompt)
        tool_choice = agent_response_dict.get("tool_choice")
        tool_input = agent_response_dict.get("tool_input")

        for tool in self.tools:
            if tool.__name__ == tool_choice:
                response = tool(tool_input)
                print(colored(response, 'cyan'))
                return

        print(colored(tool_input, 'cyan'))
        return

這個類有三個主要方法:

  1. **??prepare_tools??**:存儲工具并返回工具描述。
  2. **??think??**:根據用戶輸入選擇合適的工具。
  3. **??work??**:執行選定的工具并返回結果。

(六)運行智能體

最后,我們將所有組件組合起來,運行智能體。在腳本的主部分,初始化智能體并開始接受用戶輸入:

if __name__ == "__main__":
    print("\n歡迎使用AI智能體!輸入'exit'退出。")
    print("你可以讓我:")
    print("1. 進行數學計算(例如:'15加7')")
    print("2. 反轉字符串(例如:'反轉hello world')")
    print("3. 回答一般性問題\n")

    tools = [basic_calculator, reverse_string]
    model_service = OllamaModel
    model_name = "llama2"# 可以替換為其他模型,如'mistral'、'codellama'等
    stop = "<|eot_id|>"

    agent = Agent(tools=tools, model_service=model_service, model_name=model_name, stop=stop)

    whileTrue:
        prompt = input("問我任何問題:")
        if prompt.lower() == "exit":
            break

        agent.work(prompt)

四、總結

通過這篇文章,我們從零開始搭建了一個AI智能體。完成了環境搭建、模型定義、工具創建、工具箱構建,并最終讓智能體運行起來。這種結構化的搭建方式為創建智能、交互式的智能體奠定了堅實基礎。

隨著AI智能體的不斷發展,它們的應用場景將擴展到更多行業,推動效率和創新。未來,我們將繼續探索更多功能,讓智能體變得更強大、更智能。敬請期待!


本文轉載自公眾號Halo咯咯    作者:基咯咯

原文鏈接:??https://mp.weixin.qq.com/s/Yq7FckZgv-zgj0KIu3xnVg??

?著作權歸作者所有,如需轉載,請注明出處,否則將追究法律責任
已于2025-3-24 10:37:32修改
收藏
回復
舉報
回復
相關推薦
高清精品久久| 全国男人的天堂网| 888久久久| 精品免费国产一区二区三区四区| 和岳每晚弄的高潮嗷嗷叫视频| 婷婷伊人综合中文字幕| 免费观看在线综合色| 欧美久久精品一级黑人c片 | 无码人妻丰满熟妇区bbbbxxxx| 日本电影一区二区| 精品国产一区二区三区久久影院 | 国产成人免费高清| 日本中文字幕成人| 一区二区在线观看免费视频| 蜜乳av综合| 欧美一区二区三区色| 黑人糟蹋人妻hd中文字幕 | 亚洲色图视频网| 九色91在线视频| 一区二区三区亚洲视频| 999亚洲国产精| 久久伊人精品视频| caopeng视频| www.成人网| 8x8x8国产精品| av无码精品一区二区三区| 国产丝袜精品丝袜| 中文字幕一区日韩精品欧美| 蜜桃狠狠色伊人亚洲综合网站| www.热久久| 老色鬼精品视频在线观看播放| 久久久久久综合网天天| 久久国产高清视频| 日韩成人精品一区| 精品无人区乱码1区2区3区在线| 艹b视频在线观看| 中文字幕在线中文字幕在线中三区| 亚洲日本va午夜在线影院| 欧美日韩成人一区二区三区 | 中文字幕日韩精品无码内射| 在线播放麻豆| 国产精品色婷婷| 欧美一区二区综合| 欧美日本网站| 久久女同互慰一区二区三区| 久久青青草原一区二区| 欧美特黄一级视频| 成人精品gif动图一区| 91天堂在线视频| 国产精品久久777777换脸| 免费观看在线综合| 国产精品久久久久久久久久免费 | 91免费公开视频| 日韩久久精品| www高清在线视频日韩欧美| 日韩福利在线视频| 大色综合视频网站在线播放| 亚洲天堂男人天堂女人天堂| 免费一级做a爰片久久毛片潮| 亚洲尤物av| 国产丝袜一区二区三区| 亚洲第一香蕉网| 精品一区三区| 欲色天天网综合久久| 制服 丝袜 综合 日韩 欧美| 成人羞羞网站入口免费| 中文字幕不卡av| 久久国产波多野结衣| 小处雏高清一区二区三区| xxxx欧美18另类的高清| 欧美成人精品一区二区免费看片| 欧美aa国产视频| 欧美黑人视频一区| 精品成人久久久| 亚洲欧美卡通另类91av| 国产成人精品久久| 91福利免费视频| 国产一区不卡精品| 国产偷国产偷亚洲高清97cao| 天天操天天舔天天干| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美专区一二三 | 亚洲国产精品欧美久久| 丰满少妇久久久久久久| 欧美13一14另类| 欧美性videos| 亚洲国产日韩综合久久精品| 国产精品无码av在线播放| 97久久香蕉国产线看观看| 欧美美女网站色| 理论片大全免费理伦片| 国产欧美日韩精品高清二区综合区| 中文字幕亚洲无线码在线一区| 性欧美疯狂猛交69hd| 亚洲精品护士| 国产精品女视频| 国产aⅴ一区二区三区| 91麻豆免费看| 国产又黄又爽免费视频| 欧美一级鲁丝片| 欧美日韩国产高清一区| 色悠悠在线视频| 精品国产一区探花在线观看| 欧美日韩第一视频| 免费精品一区二区| 国产成人精品网址| 日韩视频在线播放| av在线加勒比| 制服丝袜国产精品| 这里只有久久精品| 国内精品99| 国产欧美一区二区三区四区| 五月激情婷婷综合| 亚洲三级电影网站| 国产成人精品无码播放| 午夜日韩影院| 丝袜美腿亚洲一区二区| 日本一级片免费看| 国产精品一区三区| 宅男av一区二区三区| 日本а中文在线天堂| 欧美一区二区高清| 情侣偷拍对白清晰饥渴难耐| 免费日韩av片| 国产一区自拍视频| 亚洲第一图区| 欧美老女人在线| 国产美女永久免费无遮挡| 亚洲高清不卡| 波多野结衣成人在线| 日韩毛片久久久| 在线看国产一区| 国产艳俗歌舞表演hd| 亚洲手机在线| av一本久道久久波多野结衣| a视频在线观看| 777欧美精品| 最新日韩免费视频| 美女视频黄 久久| 色999五月色| 日韩免费福利视频| 日韩成人性视频| 欧美精品亚洲精品日韩精品| 成人黄色国产精品网站大全在线免费观看 | 最新国产精品视频| 午夜欧美不卡精品aaaaa| 性生交生活影碟片| 一区二区免费看| 一级黄色电影片| 精品成人国产| 国内精品视频在线播放| 国产伦久视频在线观看| 亚洲国产又黄又爽女人高潮的| 国产在线视频二区| 成人黄色在线视频| 欧美精品一区免费| 婷婷成人影院| 日韩av电影国产| 成人免费在线视频网| 欧美色图一区二区三区| 中文字幕黄色网址| 国产做a爰片久久毛片| 国产一区一区三区| 天堂精品久久久久| 国内精品久久久久久久| 日本一卡二卡四卡精品| 欧美午夜精品久久久久久人妖| 无码一区二区三区在线| 欧美bbbbb| 一区二区三区日韩视频| 日本一区二区三区播放| 国内成人精品一区| 色综合久久网女同蕾丝边| 在线观看一区日韩| 波多野结衣喷潮| 国产电影一区二区三区| 可以看毛片的网址| 蜜乳av综合| 91视频国产一区| 国产高清在线a视频大全 | 最新真实国产在线视频| 91麻豆精品国产综合久久久久久| 国产真人真事毛片| 国产女同性恋一区二区| 精品国产鲁一鲁一区二区三区| 一区在线播放| 日韩久久久久久久| 午夜电影一区| 国产成人精品一区二区| www免费在线观看| 亚洲精品乱码久久久久久金桔影视| 无码人妻丰满熟妇奶水区码| 亚洲精品视频在线观看网站| 中文字幕乱码在线| 精品制服美女丁香| 欧美三级一级片| 国产精品videosex性欧美| 国产乱人伦精品一区二区| 日韩天堂在线| 欧美激情第6页| 岛国视频免费在线观看| 亚洲成人av片| 91九色蝌蚪91por成人| 天天色天天操综合| 爱爱视频免费在线观看| 久久亚洲一区二区三区明星换脸| 中文字幕1234区| 亚洲影院在线| 激情五月六月婷婷| 99九九热只有国产精品| 久久精品国产一区二区三区日韩| 色成人综合网| 国产成人精品视频在线| 国内小视频在线看| 久久久91精品| 国产女人在线视频| 亚洲第一精品电影| 国产女18毛片多18精品| 欧美在线你懂的| 国产免费一级视频| 香蕉久久一区二区不卡无毒影院 | 亚洲av网址在线| 国产成人综合亚洲91猫咪| 一区二区三区网址| 噜噜爱69成人精品| 免费毛片网站在线观看| 中文字幕亚洲精品乱码| 亚洲欧美一区二区原创| 久久91精品| 久久久久久国产精品一区| 91成人在线精品视频| 91精品久久久久久久久不口人| 国产v综合v| 庆余年2免费日韩剧观看大牛| av人人综合网| 欧美肥婆姓交大片| 污污在线观看| 久久av在线看| 精品孕妇一区二区三区| 色一情一乱一区二区| 国产午夜在线观看| 亚洲午夜久久久影院| 四虎国产精品永远| 日韩精品视频免费在线观看| 四虎永久在线精品免费网址| 欧美xingq一区二区| 国产黄色小视频在线观看| 欧美一区二区性放荡片| 99久久夜色精品国产亚洲| 制服丝袜一区二区三区| 国产乱人乱偷精品视频| 日韩网站在线看片你懂的| www.蜜桃av.com| 精品国产麻豆免费人成网站| 懂色av成人一区二区三区| 亚洲第一av在线| 污视频网站免费观看| 亚洲欧美日韩第一区| 加勒比一区二区三区在线| 国产亚洲精品久久久优势 | 欧美大片大片在线播放| 久久一卡二卡| 992tv在线成人免费观看| 一区二区乱码| 国产精品久久久久久久久免费看 | 日本vs亚洲vs韩国一区三区| 亚洲一区二区蜜桃| 激情图片小说一区| 久久久久久国产精品日本| 国产成人精品免费网站| 人妻在线日韩免费视频| 欧美国产97人人爽人人喊| 911国产在线| 一区二区三区**美女毛片| 韩国av免费观看| 在线观看91精品国产入口| 亚洲天堂2021av| 精品嫩草影院久久| 黄色片在线播放| 久久福利视频网| 涩涩涩视频在线观看| 91精品国产综合久久男男 | 影视一区二区三区| 成人福利在线观看| 久久草在线视频| 五月天色一区| 亚洲视频免费| 午夜久久久精品| 粉嫩在线一区二区三区视频| 欧美做受喷浆在线观看| 国产精品国产三级国产普通话三级 | 亚洲涩涩在线观看| 不卡的电视剧免费网站有什么| 国产一区二区三区四区五区六区| 亚洲视频在线一区| 国产一区二区三区影院| 欧美日韩亚洲综合在线| 手机看片一区二区三区| 日韩亚洲欧美中文高清在线| 91禁在线看| 国产色视频一区| 亚洲+变态+欧美+另类+精品| 91xxx视频| 日韩电影在线一区| 日本一区二区在线观看视频| 国产精品色在线观看| 国产成人在线观看网站| 777xxx欧美| 国产黄在线观看免费观看不卡| 欧美国产日韩xxxxx| 日韩一区中文| 日本一区二区三不卡| 亚洲久久一区二区| 99九九99九九九99九他书对| 久久欧美中文字幕| 日本视频免费在线| 日韩女优av电影在线观看| 天堂中文8资源在线8| 国产999视频| 色天下一区二区三区| 日本男女交配视频| 国内国产精品久久| 欧美日韩中文字幕视频| 欧美午夜片在线免费观看| 日本高清视频在线| 九九热这里只有精品6| 日韩精品一级毛片在线播放| 日本免费高清不卡| 久久精品道一区二区三区| 美女久久久久久久久| 一区二区三区国产精品| 国产免费一区二区三区免费视频| 在线丨暗呦小u女国产精品| 综合日韩av| 国产精选一区二区| 红桃视频亚洲| 久久久久国产免费| 亚洲影院在线观看| 亚洲第九十九页| 欧美激情视频网| 欧一区二区三区| av 日韩 人妻 黑人 综合 无码| 精品一区二区三区视频在线观看| 日本爱爱爱视频| 欧美午夜不卡在线观看免费| 国产h视频在线观看| 国产精品99久久久久久人| 国内精品伊人久久久| 男人的天堂日韩| 国产精品少妇自拍| 91好色先生tv| 久久视频在线播放| 日韩免费精品| 男人添女荫道口图片| 成人国产视频在线观看| 91精品国产高潮对白| 日韩电影第一页| 欧美电影网址| 亚洲国产欧美日韩| 极品尤物av久久免费看| 九九热精品免费视频| 亚洲成**性毛茸茸| 成人爱爱网址| 一区二区三区四区视频在线观看| 久久99精品国产麻豆不卡| www.毛片com| 亚洲成人在线网| 欧美性xxx| 一区二区精品国产| 国产高清不卡一区二区| 国产成人无码一区二区三区在线| 亚洲欧美日韩图片| 91成人app| 婷婷五月综合缴情在线视频| 久久久无码精品亚洲日韩按摩| 中文字幕乱码无码人妻系列蜜桃| 久久精品国亚洲| 欧美深夜视频| 在线黄色免费观看| 亚洲一区二区综合| 精品999视频| 欧美视频第一区| 99久久久无码国产精品衣服| 国产精品午夜在线观看| 国产裸体无遮挡| 欧美—级高清免费播放| 一本久久青青| 思思久久精品视频| 亚洲午夜精品网| 成人影视在线播放| 999国产在线| 久久一区亚洲| 婷婷在线精品视频| 亚洲视频免费一区| 综合成人在线| 在线视频日韩一区| 午夜影院在线观看欧美| 秋霞成人影院| 蜜桃av噜噜一区二区三区| 国产精品123|