成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

智能體開發實戰 | 基于Dify自定義工作流工具構建游戲智能體

人工智能
Dify是一款開源的大語言模型應用開發平臺,旨在降低AI應用的開發門檻,幫助開發者和企業快速構建、部署及管理生成式AI應用。本文以24點游戲智能體為案例,展示了Dify基于工作流的Agent應用開發。通過把工作流發布為工具,Agent通過推理可以智能調用相應工作流解決問題。

前言

Dify是一款開源的大語言模型應用開發平臺,旨在降低AI應用的開發門檻,幫助開發者和企業快速構建、部署及管理生成式AI應用。

Dify允許用戶在畫布上構建和測試功能強大的AI工作流。工作流通過將復雜任務分解為更小的步驟(節點),有效降低了系統的復雜度。這種方法減少了對提示詞技術和模型推理能力的依賴,從而提升了 LLM 在處理復雜任務時的性能,同時增強了系統的可解釋性、穩定性和容錯性。

本文以實現24點游戲為例。24點的游戲規則:給出一組4個隨機整數(1至13之間,且不重復),用加、減、乘、除(可加括號)把給出的4個數字算成24,每個數必須用一次且只能用一次。

這個智能體需要具備如下能力:

  • 出題:生成一組4個隨機整數(1至13之間,且不重復),并確保生成的隨機數能計算出24。
  • 校驗用戶輸入的表達式計算結果是否為24。
  • 解題:根據用戶給出的隨機數,生成答案。

通過設置合適的提示詞,為智能體設定角色和處理邏輯。智能體會根據大語言模型對人物設定和回復邏輯的理解,來響應用戶問題。因此提示詞編寫的越清晰明確,智能體的回復也會越符合預期??梢栽谔崾驹~中指定用工作流作邏輯處理,實現通過prompt無法實現的功能。

創建工作流工具

在http://localhost/apps頁面點擊“創建空白應用”,選擇“工作流”。填寫應用名,點擊創建。依次創建三個工作流:

  • generate_random_numbers:為24點游戲生成一組隨機數
  • check_answer:校驗表達式計算結果是否為24
  • generate_answer:根據一組隨機數生成24點游戲的答案

工作流1:generate_random_numbers

整體流程如下圖:

圖片

  • 名稱:generate_random_numbers
  • 描述:為24點游戲生成一組隨機數
  • 開始節點: 用默認配置,無需添加輸入字段
  • 代碼執行節點

圖片

  • 輸入變量:無
  • 輸出變量:numbers,類型為Array[Number]
  • 代碼:
import random
from itertools import permutations, product

def main() -> dict:
    while True:
        numbers = []
        while len(numbers) < 4:
            num = random.randint(1, 13)
            if num not in numbers:
                numbers.append(num)
        res = generate_answer(numbers)
        # 確保生成的隨機數能計算出24
        if res['code'] == 'ok':
            return {'numbers': numbers}

def generate_answer(numbers):
    if len(numbers) != 4:
        return {'code': 'error', 'msg': "隨機數個數不正確"}
    
    operations = ['+', '-', '*', '/']
    for num_perm in permutations(numbers):
        for ops in product(operations, repeat=3):
            # 嘗試所有不同的括號組合
            expressions = [
                f'(({num_perm[0]} {ops[0]} {num_perm[1]}) {ops[1]} {num_perm[2]}) {ops[2]} {num_perm[3]}',
                f'({num_perm[0]} {ops[0]} ({num_perm[1]} {ops[1]} {num_perm[2]})) {ops[2]} {num_perm[3]}',
                f'({num_perm[0]} {ops[0]} {num_perm[1]}) {ops[1]} ({num_perm[2]} {ops[2]} {num_perm[3]})',
                f'{num_perm[0]} {ops[0]} (({num_perm[1]} {ops[1]} {num_perm[2]}) {ops[2]} {num_perm[3]})',
                f'{num_perm[0]} {ops[0]} ({num_perm[1]} {ops[1]} ({num_perm[2]} {ops[2]} {num_perm[3]}))',
            ]
            for expr in expressions:
                try:
                    if eval(expr) == 24:
                        return {'code': 'ok', 'answer': expr}
                except ZeroDivisionError:
                    continue
    return {'code': 'error'}
  • 結束節點輸出變量numbers的參數值為引用“代碼執行”節點的輸出變量numbers。

圖片

  • 運行點擊右上角的“運行”,驗證是否可以正確輸出一組隨機數

圖片

  • 發布工作流測試通過后,點擊右上角的“發布”按鈕。
  • 發布為工具發布成功后,點擊“發布為工具”

圖片

填入工具調用名稱和工具描述,并保存。

圖片

工作流2:check_answer

整體流程如下圖:

圖片

  • 名稱:check_answer
  • 描述:校驗表達式計算結果是否為24
  • 開始節點

     輸入參數

     expression:類型為String,顯示名稱為“表達式”

? 代碼執行節點

   ? 輸入變量:

      expression,引用開始節點的expression變量

   ? 輸出變量:

      code,類型為String 

      msg, 類型為String

  • 代碼
def main(expression:str) -> dict:
    try:
        val = eval(expression)
        if val == 24:
            return {'code': 'ok', 'msg':'ok'}
        else:
            return {'code': 'error', 'msg': f"表達式{expression}計算結果為{val}, 不是24"}
    except Exception as e:
        return {'code': 'error', 'msg': f"計算出錯。{e}"}
  • 結束節點

     輸出變量

        code,引用代碼執行節點的code輸出變量

        msg, 引用代碼執行節點的msg輸出變量

  • 測試并發布工作流
  • 發布為工具

     發布成功后,點擊”發布為工具“。填入工具調用名稱和工具描述,并保存。

圖片

工作流3:generate_answer

整體流程如下圖:

圖片

  • 名稱:generate_answer
  • 描述:根據一組隨機數生成24點游戲的答案

     開始節點

         輸入參數

            numbers:類型為String,顯示名稱為“一組隨機整數,JSON格式”

  • 代碼執行節點

  • 輸入變量

     numbers,引用開始節點的numbers變量

? 輸出變量

      code,類型為String

      msg, 類型為String

      answer, 類型為String

   ? 代碼

from itertools import permutations, product
import json

def main(numbers:str) -> dict:
    numbersArray = json.loads(numbers)
    if len(numbersArray) != 4:
        return {'code': 'error', 'msg': "隨機數個數不正確", 'answer':''}
    
    operations = ['+', '-', '*', '/']
    for num_perm in permutations(numbersArray):
        for ops in product(operations, repeat=3):
            # 嘗試所有不同的括號組合
            expressions = [
                f'(({num_perm[0]} {ops[0]} {num_perm[1]}) {ops[1]} {num_perm[2]}) {ops[2]} {num_perm[3]}',
                f'({num_perm[0]} {ops[0]} ({num_perm[1]} {ops[1]} {num_perm[2]})) {ops[2]} {num_perm[3]}',
                f'({num_perm[0]} {ops[0]} {num_perm[1]}) {ops[1]} ({num_perm[2]} {ops[2]} {num_perm[3]})',
                f'{num_perm[0]} {ops[0]} (({num_perm[1]} {ops[1]} {num_perm[2]}) {ops[2]} {num_perm[3]})',
                f'{num_perm[0]} {ops[0]} ({num_perm[1]} {ops[1]} ({num_perm[2]} {ops[2]} {num_perm[3]}))',
            ]
            for expr in expressions:
                try:
                    if eval(expr) == 24:
                        return {'code': 'ok', 'msg':'ok', 'answer': expr}
                except ZeroDivisionError:
                    continue
    return {'code': 'error', 'msg': 'error', 'answer':''}
  • 結束節點

圖片

  • 輸出變量

     code,引用代碼執行節點的code輸出變量

     msg, 引用代碼執行節點的msg輸出變量

     answer, 引用代碼執行節點的answer輸出變量

  • 測試并發布工作流
  • 發布為工具

     發布成功后,點擊”發布為工具“。填入工具調用名稱和工具描述,并保存。

圖片

創建Agent應用

在http://localhost/apps頁面點擊“創建空白應用”,選擇“Agent”。填寫應用名,點擊創建,進入編排界面。編排界面如下:圖片

  • 設置提示詞內容為:
你是一個24點游戲助手。
- 開始游戲時,你需要生成一組隨機數,提示用戶回答,然后使用工作流check_answer校驗用戶的回答。
- 如果用戶表示回答不了問題,請使用工作流generate_answer生成答案。
- 用戶可以向你提供一組數字提問如何計算,你需要使用工作流generate_answer生成答案。
  • 添加工具把3個工作流添加為工具。
  • 選擇模型使用qwen-plus
  • 調試和預覽在下方輸入內容和Agent進行游戲互動

圖片

  • 測試通過后,點擊右上角的“發布”按鈕。
  • 發布后,點擊“運行”即可打開應用的訪問鏈接。

總結

本文以24點游戲智能體為案例,展示了Dify基于工作流的Agent應用開發。通過把工作流發布為工具,Agent通過推理可以智能調用相應工作流解決問題。


責任編輯:龐桂玉 來源: AI大模型應用開發
相關推薦

2025-06-19 03:30:00

智能體DifyMCP

2025-06-06 10:01:25

2025-04-29 08:00:00

Rowboat多智能體人工智能

2025-04-28 09:10:00

智能體Agent工作流

2025-06-17 01:00:00

Dify智能體RAG

2025-04-14 00:22:00

2025-05-23 00:01:00

AIDify智能體Java

2025-05-22 08:51:48

2025-04-07 02:00:00

2025-06-09 01:00:00

2025-04-11 10:10:16

AI智能體工作流程

2025-05-20 08:00:45

2024-11-11 09:47:00

AI開源

2023-12-08 13:47:29

AI工具ChatGPT

2025-03-04 08:42:19

2025-03-12 13:04:01

2024-11-15 14:42:00

AI模型

2025-04-01 08:05:00

智能體人工智能MCP
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄色av免费网站 | 亚洲精品成人 | 国产男女视频网站 | 97视频在线观看网站 | 久久三区| av三级在线观看 | 国产乱肥老妇国产一区二 | 请别相信他免费喜剧电影在线观看 | 国产91久久久久久久免费 | 精品一区二区三区av | 国产一区二区三区久久久久久久久 | 国产精品久久久久久久久久久久冷 | 成人福利电影 | 天天操天天拍 | 欧美大片在线观看 | 亚洲国产成人精品女人久久久野战 | 成人午夜激情 | 欧美一区二区三区在线观看视频 | 日韩欧美国产综合 | 老外黄色一级片 | 一区二区在线不卡 | 日韩和的一区二区 | 亚洲一一在线 | 欧美日韩一区在线播放 | a在线免费观看 | 久久国产一区 | 亚洲一区二区三区免费 | 一级全黄少妇性色生活免费看 | 中文字幕亚洲区一区二 | 中文字幕在线观看一区 | 日韩精品在线观看视频 | 国产精品美女久久久久久免费 | 一级黄a | 午夜影院| 欧美日韩精品一区 | 国产在线精品一区二区 | 欧美日韩成人在线 | 精品一区二区三区在线视频 | 国产精品久久在线观看 | 涩在线 | 天天干天天玩天天操 |