精品欧美一区二区三区在线观看 _久久久久国色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修改
收藏
回復
舉報
回復
相關推薦
日本福利片在线| 久久久久亚洲AV成人网人人小说| 欧美孕妇孕交| 免费看的黄色欧美网站| 日韩国产高清视频在线| 久久午夜a级毛片| 亚洲免费999| 亚洲一区二区天堂| 久久精品国产大片免费观看| 亚洲人成网站精品片在线观看| 成人h猎奇视频网站| 在线免费观看污视频| 最近高清中文在线字幕在线观看| 日韩精品一级二级 | 国产91精品欧美| 高清在线视频日韩欧美| 精品久久久久久无码国产| 久久久久久青草| 精品一区二区日韩| 最近2019年好看中文字幕视频| 黄色网在线视频| 国产一卡二卡在线| 国产精品亚洲人成在99www| 日韩欧美在线视频日韩欧美在线视频 | 免费观看黄色一级视频| 狠狠做深爱婷婷综合一区| 欧美人与性动xxxx| 蜜桃视频在线观看91| 一本到在线视频| 亚洲精品日本| 欧美一级欧美三级| 手机看片福利永久国产日韩| 不卡视频免费在线观看| 色男人天堂综合再现| 日韩欧美国产麻豆| 一本一道久久a久久综合精品| www日本高清视频| 鲁大师成人一区二区三区 | 亚洲av无码一区二区三区观看| 久久久精品一区二区毛片免费看| 午夜精品久久久久| 自拍亚洲欧美老师丝袜| 欧美精品a∨在线观看不卡 | 亚洲品质自拍视频网站| 美国av一区二区三区| 国产欧美日韩综合精品一区二区三区 | 久久三级福利| 亚洲第一二三四五区| 中文字幕亚洲影院| 成人在线爆射| 天天av天天翘天天综合网色鬼国产| 国产欧美欧洲在线观看| 国产香蕉视频在线| 欧美激情1区2区| 日韩在线欧美在线国产在线| www在线观看免费视频| 国产精品调教| 日韩视频在线永久播放| 中文字幕免费高清在线| 在线成人视屏| 亚洲成人精品在线观看| 欧美美女黄色网| 韩国福利在线| 成人av电影在线观看| 亚洲free性xxxx护士hd| 一级淫片免费看| 日韩成人av影视| 日韩av高清不卡| 亚洲国产成人无码av在线| 亚洲经典在线| 欧美高清自拍一区| 永久免费看mv网站入口| 91精品国产自产在线观看永久∴| 国产一区二区三区在线播放免费观看| 波多野结衣先锋影音| 国产精品白丝av嫩草影院| 欧美大胆一级视频| 国产精九九网站漫画| a看欧美黄色女同性恋| 亚洲国产成人av网| 欧美国产综合在线| 2024最新电影在线免费观看| 韩日精品视频一区| 国产在线拍揄自揄视频不卡99| 来吧亚洲综合网| 天天综合网91| 亚洲第一区在线观看| 中国xxxx性xxxx产国| 国产欧美啪啪| 日韩激情视频在线| 自拍偷拍视频亚洲| 日韩精品影视| 不卡中文字幕av| 国产精品久久久精品四季影院| 欧美影院天天5g天天爽| 欧美日韩在线直播| 国产成人在线综合| 日韩一区二区三区高清在线观看| 欧美成人vps| 中文字幕一区二区久久人妻网站| 网曝91综合精品门事件在线| 日韩电影大片中文字幕| 在线免费观看视频| 91精品秘密在线观看| 欧美黄色www| caoporn国产| 久久黄色级2电影| av一区二区三区四区电影| 午夜视频福利在线观看| 欧美极品少妇xxxxⅹ高跟鞋| 视频一区视频二区视频三区高 | 3d性欧美动漫精品xxxx软件| 亚洲一区在线观看免费观看电影高清| 北条麻妃av高潮尖叫在线观看| 91成人福利在线| 国产一二三四在线| 99精品国产在热久久下载| 国产精品高潮粉嫩av| 粉嫩av一区二区夜夜嗨| 日本一区二区三级电影在线观看| 三级在线免费观看| 日本综合视频| 亚洲精品一区中文字幕乱码| 欧美人与禽zozzo禽性配| 日产国产高清一区二区三区 | 女同性恋一区二区三区| 免费一区二区| 欧美极品少妇xxxxⅹ免费视频| 中文字幕一区二区人妻| 久久久久久久性| 日本丰满少妇xxxx| 18加网站在线| 欧美性生活一区| 五月婷婷深爱五月| 91p九色成人| 国产午夜精品麻豆| 国产福利久久久| 国产a视频精品免费观看| 在线视频不卡一区二区三区| 99只有精品| 国产亚洲欧美另类中文| 久久精品久久久久久久| 26uuu欧美| 国产又黄又大又粗视频| 嫩草国产精品入口| 欧美黑人xxxx| 高清一区二区三区四区| 亚洲综合激情另类小说区| 欧美专区第二页| 综合日韩在线| 国外色69视频在线观看| 亚洲第一精品网站| 亚洲一区在线视频| youjizz.com国产| 亚洲第一毛片| 久久久99爱| 日韩av中字| 中文字幕日韩免费视频| 国产亚洲精品久久久久久打不开| 狠狠色丁香婷综合久久| 青青在线免费视频| 超碰成人97| 26uuu国产精品视频| 亚洲欧美日韩成人在线| 一本大道综合伊人精品热热 | 国产三级在线观看视频| 亚洲精品中文在线| 人妻互换一二三区激情视频| 亚洲激情女人| 日韩三级电影免费观看| 性欧美video另类hd尤物| 欧美成人网在线| 少妇高潮久久久| 日韩欧美在线观看| 一级片黄色录像| 国产不卡视频在线播放| 免费欧美一级视频| 成人影院天天5g天天爽无毒影院| 国产有码一区二区| 女囚岛在线观看| 精品视频一区二区三区免费| 永久av免费网站| 成人高清视频在线| 妓院一钑片免看黄大片| 91精品国产乱码久久久久久久| 肥熟一91porny丨九色丨| 不卡一二三区| 成人97在线观看视频| 日韩一区二区三区不卡| 在线观看av一区| av无码av天天av天天爽| 奇米影视在线99精品| 在线观看av的网址| 亚洲人成精品久久久 | 免费黄色在线播放| 亚洲一区二区三区免费在线观看| 亚洲欧洲精品在线| 国产另类在线| 国产专区精品视频| 秋霞伦理一区| 欧美成人午夜视频| 精品欧美不卡一区二区在线观看 | 国产精品一区在线看| 日韩视频一区在线观看| 欧美超碰在线观看| 亚洲午夜精品网| 可以免费看av的网址| 99精品国产视频| 欧美xxxxxbbbbb| 日韩中文字幕1| 青草青青在线视频| 亚洲国产精品久久久天堂| 青青草国产精品| 美国成人xxx| 91精品黄色| 成人免费在线观看视频| 国语自产精品视频在线看一大j8| 欧美成人hd| 亚洲欧美国产日韩中文字幕| 午夜精品久久久久久久99老熟妇| 欧美亚洲图片小说| 日韩 欧美 中文| 亚洲一区二区三区中文字幕 | 欧美在线一卡| 亚洲国产精品成人一区二区| 国产亲伦免费视频播放| 欧美日韩精品欧美日韩精品| 日韩免费av网站| 激情亚洲一区二区三区四区| 久久久久亚洲天堂| 亚洲精品日日夜夜| 91嫩草丨国产丨精品| 国产精品蜜臀在线观看| 久操视频在线观看免费| 97se亚洲国产综合在线| 强迫凌虐淫辱の牝奴在线观看| 国产二区国产一区在线观看| 91欧美一区二区三区| 久色婷婷小香蕉久久| 天天干在线影院| 日韩成人av影视| 青青青在线视频免费观看| 老司机精品久久| 日韩免费高清在线| 日韩影院免费视频| 欧美婷婷精品激情| 麻豆精品国产传媒mv男同 | 国产成人精品网| 高跟丝袜欧美一区| 日韩特级黄色片| 欧美性猛交xxxx| 日本中文字幕久久| 色94色欧美sute亚洲13| 国模私拍一区二区| 在线不卡欧美精品一区二区三区| 国产女同91疯狂高潮互磨| 欧美一区二区三区思思人| 成人av无码一区二区三区| 日韩欧美一区二区免费| 女人18毛片一区二区三区| 亚洲精品suv精品一区二区| 欧美在线一卡| www.欧美三级电影.com| 操你啦视频在线| 久久久日本电影| 一区二区三区四区日本视频| 国产精品久久久久久久一区探花| 日本国产一区| 超碰97国产在线| 国产99亚洲| 中文字幕一区二区三区四区五区六区 | 日韩精品美女| 日韩免费观看网站| 欧美日韩va| 风间由美久久久| 久9久9色综合| 成人免费看片视频在线观看| 影音先锋久久| 自拍偷拍一区二区三区四区| 欧美阿v一级看视频| 国产中文字幕乱人伦在线观看| 一本色道久久综合亚洲精品不卡| www.超碰com| 国产盗摄精品一区二区三区在线 | 波多野结衣在线播放一区| 咪咪色在线视频| av不卡在线| 999这里有精品| 93久久精品日日躁夜夜躁欧美| 国产精品www爽爽爽| av中文字幕不卡| 国产成人免费观看网站| 亚洲一区二区影院| 五月婷婷丁香在线| 精品电影一区二区| av在线免费观看网| 亚洲图片制服诱惑| www视频在线免费观看 | 日韩av黄色| 久久国产一区二区| 亚洲天堂免费| 蜜臀视频一区二区三区| 国产成人精品一区二区三区四区 | 91国偷自产一区二区三区观看| 国产日韩欧美一区二区东京热| 亚洲电影免费观看高清完整版在线观看 | 久久av.com| japanese23hdxxxx日韩| 高清视频一区二区三区| 四季av一区二区凹凸精品| 国产亚洲综合视频| 国产成人在线网站| 麻豆一区在线观看| 在线观看日韩av先锋影音电影院| 亚洲精品第五页| 久久精品视频亚洲| 欧美日一区二区三区| 久久久久久欧美精品色一二三四| 欧美二区视频| 国产高清999| 中文字幕第一区| 久久国产视频一区| 日韩av中文字幕在线| 日本一级理论片在线大全| 91精品国产自产在线观看永久| 要久久电视剧全集免费| 免费无遮挡无码永久视频| 国产传媒欧美日韩成人| 粉嫩av性色av蜜臀av网站| 欧美日韩久久不卡| 岛国最新视频免费在线观看| 日韩免费观看网站| 国产成人三级| 无遮挡又爽又刺激的视频| 99v久久综合狠狠综合久久| 日本中文字幕免费| 亚洲大胆人体在线| www555久久| 国产嫩草一区二区三区在线观看| 欧美a级片一区| 中文字幕 欧美 日韩| 亚洲激情男女视频| www.黄色片| 欧美多人爱爱视频网站| 96sao在线精品免费视频| av 日韩 人妻 黑人 综合 无码| 国产精品一级二级三级| 欧美成人三级在线观看| 欧美变态tickling挠脚心| 亚洲综合影视| 国产乱码精品一区二区三区卡| 亚洲高清资源| 日本少妇毛茸茸| 欧美性猛xxx| 137大胆人体在线观看| 国产综合久久久久久| 亚洲欧美伊人| 亚洲啪av永久无码精品放毛片| 亚洲高清免费在线| 亚洲aⅴ在线观看| 国产97色在线| 久久社区一区| 免费欧美一级片| 精品人伦一区二区三区蜜桃免费| 亚洲色图21p| 国产精品视频网| 欧美88av| 中文在线一区二区三区| 91久久国产综合久久| 麻豆最新免费在线视频| 国产精品成人一区二区三区| 国产亚洲高清视频| 亚洲第一综合网| 日韩欧美aaaaaa| 成人欧美大片| 自拍偷拍亚洲色图欧美| jlzzjlzz国产精品久久| 日韩精品在线一区二区三区| 欧美成人精品一区二区| 欧美一级三级| 日韩av一卡二卡三卡| 精品女厕一区二区三区| 一级毛片视频在线| 国内精品视频免费| 奇米777欧美一区二区| 久久视频免费看| 永久免费精品影视网站| **爰片久久毛片| 手机在线免费观看毛片| 亚洲国产日日夜夜| av在线天堂| 精品一区二区三区免费毛片| 另类小说综合欧美亚洲| 日韩少妇裸体做爰视频| 最近2019中文字幕一页二页| 群体交乱之放荡娇妻一区二区| 手机av在线免费| 日韩欧美精品中文字幕| 欧美hdxxx| 亚洲人成网站在线观看播放|