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

Agent實戰-JSON結構化智能

發布于 2024-10-23 10:55
瀏覽
0收藏

隨著AI應用工程的飛速發展,我們不難發現為大語言模型(LLMs)提供額外工具能大大增強其功能。

舉例來說,GPT3.5版本通過集成Bing搜索和Python解釋器實現了能力的躍遷。GPTs則直接將api調用作為工具進行了集成,LLM會決定是直接作出回應,還是先調用它提供的工具。這些工具不僅限于獲取額外信息,它們還能發揮其他功能,比如幫用戶訂餐。

盡管OpenAI已經用它的專門模型讓我們享受了工具使用的便捷,大多數其他LLM在函數調用和工具使用方面仍不及OpenAI的水平。我嘗試了Ollama上的多數模型,大多數在持續生成可用于代理的預定義結構化輸出方面表現不佳。另一方面,也有一些模型是專為函數調用優化的。但這些模型要么是采用難以理解的自定義提示架構,要么除了函數調用別無它用。

Agent實戰-JSON結構化智能-AI.x社區

智能代理LLM與圖數據庫的交互示意圖

今天我們要探討的是如何實施一個基于JSON格式的LLM智能代理。

語義層的工具

LangChain文檔中的示例(JSON代理,HuggingFace示例)使用單字符串輸入的工具。但因為語義層的工具需要稍微復雜一些的輸入,我需要進行一些深入研究。下面是推薦工具的示例輸入:

all_genres = [
    "Action",
    "Adventure",
    "Animation",
    "Children",
    "Comedy",
    "Crime",
    "Documentary",
    "Drama",
    "Fantasy",
    "Film-Noir",
    "Horror",
    "IMAX",
    "Musical",
    "Mystery",
    "Romance",
    "Sci-Fi",
    "Thriller",
    "War",
    "Western",
]

class RecommenderInput(BaseModel):
     movie: Optional[str] = Field(descriptinotallow="用來推薦的電影")
     genre: Optional[str] = Field(
         descriptinotallow=("用于推薦的電影類型。可選項有:" f"{all_genres}")
     )

推薦工具有兩個可選的輸入項:電影和類型,并且我們為類型提供了一系列可選的值。雖然這些輸入項并不特別復雜,但比單一字符串輸入要高級一些,因此實現起來也略有不同。

基于JSON的LLM智能代理提示

在我的實現中,我深受現有的??hwchase17/react-json??提示的啟發,這一提示可以在LangChain hub中找到。提示使用以下系統消息:

盡你所能回答下面的問題。你可以使用以下工具:

{tools}

你可以通過指定一個JSON塊來使用工具。
具體而言,這個JSON應該包含一個`action`鍵(用來指定要使用的工具名稱)和一個`action_input`鍵(工具的輸入在這里)。

"action"鍵里的值應當僅為:{tool_names}

$JSON_BLOB應該只包含單一的動作,請不要返回一個列表包含多個動作。以下是一個有效$JSON_BLOB的示例:

```
{{
   "action": $TOOL_NAME,
   "action_input": $INPUT
}}
```

每次回答都要遵循以下格式:

Question: 你需要回答的問題
Thought: 你應該在思考要做什么
Action:
```
$JSON_BLOB
```
Observation: 動作的結果
...(這種思考/動作/觀察的過程可以重復N次)
Thought: 我現在知道最終答案了
Final Answer: 對原本提問的最終回答

開始!請記住每次回答時都要精確使用`Final Answer`這個詞。

提示的開始部分通過定義可用的工具來設定,后面我們將深入討論。提示中最關鍵的部分是對LLM輸出預期的指示。當LLM需要使用工具時,它應該使用以下JSON結構:

{{
   "action": $TOOL_NAME,
   "action_input": $INPUT
}}

這就是為什么它被稱作基于JSON的代理:我們指導LLM在希望使用任何可用工具時生成一個JSON。然而,這只是輸出定義的一小部分。完整的輸出應遵循以下結構:

Thought: 你應該在思考要做什么
Action:
```
$JSON_BLOB
```
Observation: 動作的結果
...(這可以重復N次)
Final Answer: 對原本提問的最終回答

LLM在輸出中總是需要解釋它正在做什么,即"Thought"部分。當它想要使用任何可用的工具時,它應以JSON塊的形式提供動作輸入。"Observation"部分留給工具的輸出,而當代理決定可以回答用戶提出的問題時,它應使用"Final Answer"關鍵詞。以下是電影智能代理使用此結構的一個實例。

Agent實戰-JSON結構化智能-AI.x社區

在這個例子中,我們讓代理推薦一部喜劇片。由于代理的一個可用工具是推薦工具,它決定利用推薦工具,并提供了用JSON寫的輸入語法。幸運的是,LangChain有一個內置的JSON智能代理輸出解析器,我們無需操心其實現細節。然后,LLM從工具得到回應,并在提示語中作為觀察結果使用。由于工具提供了所有必要的信息,LLM認為已經有了足夠的信息來構建可以交給用戶的最終答案。

我注意到對Mixtral的提示工程經常失敗,它不總是只在需要工具時使用JSON語法。在我的測試中,當它不想使用任何工具時,有時它會使用如下的JSON動作輸入:

{{
  "action": Null,
  "action_input": ""
}}

如果動作為null或類似的,LangChain的輸出解析函數并不會忽視這個動作,而是會報錯說沒有定義null這個工具。我嘗試對此進行提示修改,但沒能一直做到。因此,我決定增加一個假設性的閑聊工具,以便用戶想要進行閑聊時代理可以調用。

response = (
    "創建一個最終回答它們是否有任何關于電影或演員的問題"
)


class SmalltalkInput(BaseModel):
    query: Optional[str] = Field(descriptinotallow="用戶提問")

class SmalltalkTool(BaseTool):
    name = "Smalltalk"
    description = "當用戶打招呼或想要閑聊時適用"
    args_schema: Type[BaseModel] = SmalltalkInput

    def _run(
        self,
        query: Optional[str] = None,
        run_manager: Optional[CallbackManagerForToolRun] = None,
    ) -> str:
        """使用該工具。"""
        return response

如此,代理在用戶打招呼時可以決定使用一個假的Smalltalk工具,我們再也不會因為解析null或者缺失工具名而遇到問題了。

Agent實戰-JSON結構化智能-AI.x社區

這樣的臨時彌補方法很管用,所以我選擇留用它。像之前說的,大多數模型并未被訓練以產生操作輸入或者在不需要動作時生成文本,因此我們必須利用現有資源。至于操控模型以便它只在有必要時產生JSON動作輸入,有時是成功的,有時則依賴情況而定。但像smalltalk工具這樣給它提供一個備選項,可以避免出現異常。

在系統提示中定義工具輸入

如前所述,我需要弄清楚如何定義略微復雜的工具輸入,這樣LLM才能正確解釋它們。好笑的是,在我實現了一個自定義功能后,我找到了一個現成的LangChain功能,這個功能可以將自定義的Pydantic工具輸入定義轉換成Mixtral能識別的JSON對象。

from langchain.tools.render import render_text_description_and_args

tools = [RecommenderTool(), InformationTool(), Smalltalk()]

tool_input = render_text_description_and_args(tools)
print(tool_input)

它產生了以下的字符串描述:

"Recommender":"當你需要推薦一部電影時使用",
"args":{
   {
      "movie":{
         {
            "title":"Movie",
            "description":"用于推薦的電影",
            "type":"string"
         }
      },
      "genre":{
         {
            "title":"Genre",
            "description":"用于推薦的電影類型。可選項有:['Action', 'Adventure', 'Animation', 'Children', 'Comedy', 'Crime', 'Documentary', 'Drama', 'Fantasy', 'Film-Noir', 'Horror', 'IMAX', 'Musical', 'Mystery', 'Romance', 'Sci-Fi', 'Thriller', 'War', 'Western']",
            "type":"string"
         }
      }
   }
},
"Information":"當你需要回答關于各種演員或電影問題時使用",
"args":{
   {
      "entity":{
         {
            "title":"Entity",
            "description":"問題中提到的電影或人名",
            "type":"string"
         }
      },
      "entity_type":{
         {
            "title":"Entity Type",
            "description":"實體的類型。可選項為'movie'或'person'",
            "type":"string"
         }
      }
   }
},
"Smalltalk":"當用戶打招呼或想要閑聊時使用",
"args":{
   {
      "query":{
         {
            "title":"Query",
            "description":"用戶提問",
            "type":"string"
         }
      }
   }
}

我們只需將這些工具描述復制粘貼到系統提示中,Mixtral就能正確使用這些提前定義的工具,這非常方便。

結論

為實現這個基于JSON的智能代理,Harrison Chase和LangChain團隊已經完成了大部分工作,我對此表示由衷的感謝。我只需要把碎片拼湊起來即可。正如所說,不要期待與GPT-4同等水平的性能。然而,我相信像Mixtral這樣更強大的開源LLMs可以立即當做智能代理使用(比起GPT-4來可能需要更多的異常處理)。我期待未來會有更多開源LLMs被優化以作為智能代理使用。

References

  • Langchain模板:https://github.com/langchain-ai/langchain/tree/master/templates/neo4j-semantic-ollama?ref=blog.langchain.dev
  • Jupyter筆記本版本:https://github.com/tomasonjo/blogs/blob/master/llm/ollama_semantic_layer.ipynb?ref=blog.langchain.dev

 

本文轉載自 ??AI小智??,作者: AI小智

收藏
回復
舉報
回復
相關推薦
国产精品网在线观看| 91精品视频观看| 国产精品无码一本二本三本色| 日韩在线视频第一页| 媚黑女一区二区| 色婷婷av一区二区三区在线观看 | 亚洲影视中文字幕| 少妇aaaaa| 亚洲+小说+欧美+激情+另类| 欧美丝袜自拍制服另类| 国产91在线亚洲| 日本不卡视频一区二区| 免费在线观看视频一区| 欧美激情在线一区| 亚洲第一综合网| 凹凸成人在线| 欧美老女人第四色| 成人免费在线小视频| 精品国产白色丝袜高跟鞋| 91蜜桃网址入口| 91麻豆国产精品| 黄色av网站免费| 黄色成人91| www.美女亚洲精品| 国产aⅴ激情无码久久久无码| 视频精品二区| 欧产日产国产精品98| 免费v片在线观看| 国产精品三级在线观看| 韩国一区二区三区美女美女秀| 中文字幕欧美在线观看| 国产婷婷精品| 欧美激情精品久久久久久大尺度| 亚洲黄色网址大全| 亚洲动漫在线观看| 亚洲成人在线网| 青娱乐精品在线| 精品国产黄a∨片高清在线| 精品露脸国产偷人在视频| 日本a在线天堂| 搞黄网站在线观看| 亚洲国产精品高清| 欧美性色综合网| 男人天堂网视频| 国产h片在线观看| 亚洲国产裸拍裸体视频在线观看乱了 | 日韩欧美亚洲v片| 天天干视频在线观看| 高清国产一区二区| 91丝袜脚交足在线播放| 99热这里只有精品5| 精品一二三四区| 91精品国产自产在线观看永久| av首页在线观看| 日韩二区三区四区| 国产福利视频一区二区| 99精品人妻国产毛片| 性欧美暴力猛交另类hd| 欧洲精品毛片网站| 人人草在线观看| 日韩va欧美va亚洲va久久| 国产成人久久久精品一区| 男人天堂2024| 日韩在线一区二区三区| 国产精品免费电影| 在线免费观看中文字幕| 韩国精品在线观看| 114国产精品久久免费观看| 99国产精品久久久久99打野战| 国产酒店精品激情| 粉嫩高清一区二区三区精品视频| 免费观看成年人视频| 99re在线精品| 亚洲成人在线视频网站| 麻豆tv入口在线看| 一区二区三区中文字幕电影 | 日韩激情电影| 亚洲福利视频一区| 日韩欧美国产综合在线| 成人性教育av免费网址| 欧美亚洲一区三区| 五月天丁香花婷婷| 超碰地址久久| 亚洲美女av网站| 永久免费看片视频教学| 欧美日韩中文| 国产99久久精品一区二区| 亚洲综合一区中| 国产91对白在线观看九色| 久久精品国产一区二区三区不卡| 国内在线精品| 亚洲精品乱码久久久久久黑人| 国产日韩av网站| 日韩成人亚洲| 精品免费视频.| 天天躁夜夜躁狠狠是什么心态| 国产精品久久占久久| 97国产精品免费视频| 欧美bbbbbbbbbbbb精品| 久久99精品视频| 精品日韩欧美| 国产视频在线播放| 狠狠干狠狠久久| 久久出品必属精品| 自拍亚洲一区| 久久成人av网站| 神马久久久久久久| 国产成人在线网站| 日本视频精品一区| 性爱视频在线播放| 欧美网站大全在线观看| 欧美熟妇精品一区二区蜜桃视频| 成人国产精品一级毛片视频| 性欧美xxxx交| 99在线无码精品入口| 国产亚洲美州欧州综合国| wwwwww欧美| 日韩黄色三级在线观看| 亚洲人成电影在线| 久久久精品一区二区涩爱| 亚洲免费不卡| 日韩中字在线观看| 自拍偷自拍亚洲精品被多人伦好爽 | 91亚洲天堂| 在线欧美小视频| 日本精品一二三区| 人妻 日韩 欧美 综合 制服| 亚洲警察之高压线| 欧美激情一级欧美精品| 国产一区二区在线播放视频| 久久久.com| 蜜桃传媒一区二区三区| 国产精久久一区二区| 国产亚洲欧洲高清| aaa人片在线| 成人综合在线网站| 青青在线免费视频| 一区二区三区| 中文字幕亚洲精品| 日韩av免费播放| 久久综合色婷婷| 免费看一级大黄情大片| 国产欧美自拍一区| 色综合男人天堂| 国产偷人妻精品一区二区在线| 国产精品国产三级国产aⅴ原创| 欧美啪啪免费视频| 露出调教综合另类| 亚州成人av在线| 懂色av一区二区三区四区| 亚洲精品乱码久久久久久黑人 | 91免费国产在线| 成人黄色av片| 五月天亚洲一区| 国产91在线视频| 国产玉足榨精视频在线观看| 日本久久一区二区| 国产精品久久久久久久av| 免费一区二区视频| 亚洲美女搞黄| 欧美三级一区| 久久全球大尺度高清视频| 色婷婷av一区二区三区之红樱桃 | 黄色片网址在线观看| 欧美一级色片| 日本韩国欧美精品大片卡二| 久久综合九色综合久| 在线观看日韩国产| 激情五月激情综合| 国产成人午夜99999| 僵尸世界大战2 在线播放| 亚洲另类av| 国产精品无av码在线观看| 蜜芽在线免费观看| 日韩欧美在线不卡| 日本三级午夜理伦三级三| 91蝌蚪porny九色| 韩国日本美国免费毛片| 香蕉国产精品| 黑人中文字幕一区二区三区| 激情开心成人网| 久久在线观看视频| 天天色综合久久| 精品视频在线免费看| 激情四射综合网| 91蜜桃网址入口| 欧洲美女亚洲激情| 99视频+国产日韩欧美| 亚洲激情一区二区| 2020国产精品极品色在线观看| 18久久久久久| 麻豆视频在线观看免费网站| 亚洲成人av在线播放| 久久国产香蕉视频| 亚洲一线二线三线久久久| 性欧美精品中出| 国产成人av在线影院| 国产1区2区在线| 国产精品a级| 午夜精品一区二区三区四区| 99香蕉久久| 国产精品亚洲网站| 超清av在线| 久久九九国产精品怡红院 | 中文字幕二区三区| 亚洲v日本v欧美v久久精品| 国产一二三av| 91视频com| 91精品国产高清91久久久久久| 日韩精品一级中文字幕精品视频免费观看 | 亚洲不卡1区| 色妞ww精品视频7777| 国产精品电影一区| 国产va在线视频| 欧美激情视频给我| 日本高清在线观看wwwww色| 日韩av综合网站| 国产按摩一区二区三区| 欧美影片第一页| 国产www在线| 亚洲高清视频在线| 最新一区二区三区| 国产精品素人视频| 国产人妻一区二区| 波波电影院一区二区三区| 三年中文在线观看免费大全中国| 热久久免费视频| 激情六月丁香婷婷| 亚洲免费大片| 给我免费播放片在线观看| 国产精品豆花视频| 亚洲自拍偷拍一区二区三区| 成人无号精品一区二区三区| 蜜桃av色综合| 日韩av影院| 久久riav| 日日天天久久| 蜜桃网站成人| 思热99re视热频这里只精品 | 天天干,天天操,天天射| 欧美精品一区二区三区很污很色的| 97超碰资源站| 伊人网站在线观看| 你懂的在线观看一区二区| 亚洲成人在线网站| 欧美成人短视频| 欧美激情一区二区三区四区| 日韩人妻一区二区三区| 91麻豆国产自产在线观看| 久久午夜夜伦鲁鲁片| eeuss国产一区二区三区| 美国黄色一级视频| 成人美女在线视频| 伊人久久一区二区三区| 成人动漫一区二区| 手机在线成人av| 99久久免费国产| 国产熟妇搡bbbb搡bbbb| 久久亚洲一区二区三区明星换脸 | 色多多国产成人永久免费网站 | 日韩av在线中文| 久久99国产精品尤物| 香蕉视频xxxx| www.日韩精品| 成人性生交大免费看| 国产色婷婷亚洲99精品小说| 中国1级黄色片| 亚洲欧美日韩电影| 久久久精品91| 岛国av一区二区三区| 五月婷婷六月婷婷| 91麻豆精品国产91久久久使用方法| 国产永久免费视频| 精品国产一区二区精华 | 一区二区三区 在线观看视| 亚洲图片88| 欧美大片免费观看在线观看网站推荐| 蜜桃视频www网站在线观看| 日韩av电影国产| 爱情电影网av一区二区| 国产经典一区二区三区| 一呦二呦三呦国产精品| 亚洲人成77777| 亚洲视频一二| 九九热免费精品视频| 国产在线一区观看| 添女人荫蒂视频| 国产精品传媒在线| 国产无码精品一区二区| 在线观看av不卡| 亚洲国产日韩在线观看| 亚洲视频在线免费看| 99热国产在线| 日本韩国在线不卡| 日本在线一区二区三区| 鲁片一区二区三区| 亚洲精品午夜av福利久久蜜桃| 奇米影视亚洲色图| 麻豆精品久久久| 亚洲av成人无码一二三在线观看| 国产精品免费久久| 日韩女同强女同hd| 欧美乱妇23p| 免费在线黄色影片| 欧美黄色性视频| 欧美xxxx网站| 欧美日韩一区二区视频在线观看| 欧美一区二区三区另类| 日韩视频免费在线播放| 成人在线视频一区| 丁香激情五月少妇| 午夜日韩在线电影| 国产av一区二区三区精品| 亚洲一二三在线| 韩国精品一区| 91九色在线免费视频| 欧美三级美国一级| a级黄色一级片| 国产91综合网| www.一区| 国产精品久久久久久久久久ktv| 精品国产亚洲一区二区三区在线 | 国内精品久久久久久久久久久| 日韩电影在线观看中文字幕 | 成人全视频高清免费观看| 久久久综合av| 久久av偷拍| 一区二区三区四区| 丝袜脚交一区二区| 超碰97在线资源站| 亚洲综合一区二区| 国产精品无码免费播放| 视频在线一区二区| 欧美三级精品| 欧美日韩综合久久| 中国女人久久久| 亚洲一区二区三区无码久久| 亚洲国产欧美另类丝袜| 亚洲av无码乱码国产麻豆| 美女扒开尿口让男人操亚洲视频网站| jvid一区二区三区| 色噜噜一区二区| 日韩高清在线电影| 日本一二三不卡视频| 欧洲一区在线观看| 成人在线观看网站| 国产精品美女久久久免费| 成人影院天天5g天天爽无毒影院| 日日摸天天爽天天爽视频| 久久综合久久99| 加勒比在线一区| 在线观看久久av| 欧美激情三区| 中国一级黄色录像| 国产老女人精品毛片久久| 久久成人国产精品入口| 精品福利在线导航| 高清视频在线观看三级| 欧美高清性xxxxhdvideosex| 美女精品网站| 国产传媒在线看| 91精品国产综合久久蜜臀| 青春草视频在线观看| 国产精品一区视频| 久久九九精品| 你懂得视频在线观看| 91麻豆精品91久久久久久清纯 | 亚洲成人精选| 91人妻一区二区| 欧美日韩中文字幕| 国产爆初菊在线观看免费视频网站 | 亚洲精品亚洲人成在线| 老太脱裤让老头玩ⅹxxxx| 久久久噜噜噜久噜久久综合| 最近中文字幕在线免费观看| 日韩亚洲欧美成人| 日韩免费高清视频网站| 免费毛片网站在线观看| 久久这里只有精品6| 亚洲国产无线乱码在线观看| 久久手机精品视频| 加勒比视频一区| 日本美女高潮视频| 亚洲精品精品亚洲| 日本中文字幕一区二区有码在线| 国产精品高潮在线| 欧美二区不卡| 国产全是老熟女太爽了| 欧美日韩久久久一区| 久草免费在线色站| 日韩精品久久一区| 国产成人精品免费在线| 亚洲 欧美 成人| 久久国产天堂福利天堂| 五月国产精品| 日韩av影视大全| 色天天综合色天天久久| 成人福利片网站| 日本一区视频在线播放| 国产91丝袜在线播放0|