AI(學習筆記第三課) 使用langchain進行AI開發(2)

文章目錄

  • AI(學習筆記第三課) 使用langchain進行AI開發(2)
  • 學習內容:
    • 1. 返回結構化數據(structured_output pydantic)
      • 1.1 使用背景
      • 1.2 返回結構化數據示例代碼(pydantic)
      • 1.3 執行測試代碼
    • 2 返回結構化數據(json)
      • 2.1 示例代碼
      • 2.2 執行結果
    • 3 給提供一些例子(few shot prompting)
      • 3.1 示例代碼
    • 4 模型綁定工具(Tool Calling)
      • 4.1 Tool Calling是什么
      • 4.2 Tool Calling實例代碼
      • 4.3 Tool Calling實現階段
        • 4.3.1 提前綁定階段
        • 4.3.2 Tool calling調用階段
      • 4.4 Tool calling示例
        • 4.4.1 Tool calling示例代碼
        • 4.4.2 Tool calling示例代碼執行
    • 5 返回結構化回答(使用method)
      • 5.1 使用method結構代碼
      • 5.2 實行結果
    • 6 返回結構化回答(使用include_raw)

AI(學習筆記第三課) 使用langchain進行AI開發(2)

  • 使用langchain,返回結構化數據

學習內容:

  • 使用langchain,返回結構化數據(pydantic)
  • 使用langchain,返回結構化數據(json)
  • 提供一些示例few shot prompting
  • 模型綁定工具Tool Calling
  • 使用langchain,返回結構化數據(method)
  • 使用langchain,返回結構化數據(include raw)

1. 返回結構化數據(structured_output pydantic)

1.1 使用背景

一般的AI Application都是希望給LLM給出的回答,能夠進行解析,所以最好是結構化的結果(structured output)。
在這里插入圖片描述
參照langchain的官方文檔。
structured_output

1.2 返回結構化數據示例代碼(pydantic)

  • 使用deepseek的官方AI,不使用自己構造的ollama
  • 需要引入langchain-deepseek這個包,可以看出langchain開始對于deepseek支持了。
  • 可以看出,這是使用的是pydantic的結構化數據。
from typing import Optional
from langchain_deepseek import ChatDeepSeek
from pydantic import BaseModel, Fieldllm = ChatDeepSeek(model="deepseek-chat",  # 模型名稱temperature=0,         # 控制生成隨機性(0-1)max_tokens=None,       # 最大輸出token數timeout=None,          # 超時設置max_retries=2,         # 失敗重試次數api_key="your own deepseek api key"
)class Joke(BaseModel):"""Joke to tell user."""setup: str = Field(description="The setup of the joke")punchline: str = Field(description="The punchline to the joke")rating: Optional[int] = Field(default=None, description="How funny the joke is, from 1 to 10")
structured_llm = llm.with_structured_output(Joke)
print(structured_llm.invoke("Tell me a joke about cats"))

1.3 執行測試代碼

setup="Why don't cats play poker in the jungle?" punchline='Too many cheetahs!' rating=7

結果已經是結構化的數據了。
在這里插入圖片描述

2 返回結構化數據(json)

2.1 示例代碼

除了pydantic格式之外,也可以是數據的json

from langchain_deepseek import ChatDeepSeek
from typing import Optional
from typing_extensions import Annotated, TypedDict
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)llm = ChatDeepSeek(model="deepseek-chat",  # 模型名稱temperature=0,         # 控制生成隨機性(0-1)max_tokens=None,       # 最大輸出token數timeout=None,          # 超時設置max_retries=2,         # 失敗重試次數api_key=

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/80660.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80660.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/80660.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

unity 使用藍牙通訊(PC版,非安卓)

BlueTooth in pc with unity 最近接到的需求是在unity里面開發藍牙功能,其實一開始我并不慌,因為據我所知,unity有豐富的插件可以使用,但是問題隨之而來 1.unity里面無法直接與藍牙通訊(后來找到了開啟runtime一類的東西,但是我找了半天也沒找到在哪里可以打開) 2.引入dll通過d…

MySQL中的意向鎖 + next-key鎖 + 間隙鎖

引言 在數據庫并發控制中,鎖機制是保障數據一致性和隔離性的核心手段。MySQL中意向鎖、間隙鎖以及next-key鎖等復雜鎖類型,旨在協調表級鎖與行級鎖之間的關系,防止數據的臟讀、不可重復讀和幻讀現象,尤其是在可重復讀隔離級別下發…

機器學習 數據集

數據集 1. scikit-learn工具介紹1.1 scikit-learn安裝1.2 Scikit-learn包含的內容 2 數據集2.1 sklearn玩具數據集介紹2.2 sklearn現實世界數據集介紹2.3 sklearn加載玩具數據集示例1:鳶尾花數據示例2:分析糖尿病數據集 2.4 sklearn獲取現實世界數據集示…

Linux-c語言串口程序

c語言串口程序 // C library headers #include <stdio.h> #include <string.h>// Linux headers #include <fcntl.h> // Contains file controls like O_RDWR #include <errno.h> // Error integer and strerror() function #include <termios.h&g…

TCP IP

TCP/IP 通信協議&#xff0c;不是單一協議&#xff0c;是一組協議的集合 TCP IP UDP 1.建立鏈接 三次握手 第一步&#xff1a;客戶端發送一個FIN報文&#xff0c;SEQX,等待服務器回應 第二步&#xff1a;服務器端受到&#xff0c;發送ackx1,seqy, 等待客戶端回應 第三步&am…

用uniapp在微信小程序實現畫板(電子簽名)功能,使用canvas實現功能

效果&#xff1a; 功能&#xff1a;實現重簽 退出 保存 等功能 解決的問題: 電子簽名畫布抖動問題解 注意&#xff1a; 保存的時候上傳到自己的服務器地址&#xff0c;后端返回圖片地址 代碼&#xff1a; <template><view><view class"signature&qu…

機器學習經典算法:用決策樹原理優化新能源汽車續航能力

?? “用決策樹重構新能源車能量大腦!算法推導+代碼實戰全解,續航暴增15%” 決策樹算法就像我們生活中做決策的 “流程指南”,通過層層判斷得出最終結論。比如你去超市買水果,站在琳瑯滿目的貨架前,就不自覺地用上了決策樹思維。首先,你可能會想 “今天想吃酸的還是甜的…

【Unity中的數學】—— 四元數

一、四元數的定義&#x1f60e; 四元數是一種高階復數&#xff0c;是一個四維空間的概念&#xff0c;相對于復數的二維空間。它可以表示為 q s i x j y k z q s ix jy kz qsixjykz&#xff0c;其中 s s s、 x x x、 y y y、 z z z 都是實數&#xff0c;并且滿足 i …

macOS 15.4.1 Chrome不能訪問本地網絡

前言 最近使用macmini m4&#xff0c;自帶macOS15系統&#xff0c;對于開發者簡直是一言難盡&#xff0c;Chrome瀏覽器的本地網絡有bug&#xff0c;可以訪問本機&#xff0c;但是不能訪問路由器上的其他機器&#xff0c;路由器提供的頁面也不能訪問&#xff0c;如下是折騰解決…

瀏覽器刷新結束頁面事件,調結束事件的接口(vue)

瀏覽器刷新的時候&#xff0c;正在進行中的事件結束掉&#xff0c;在刷新瀏覽器的時候做一些操作。 如果是調接口&#xff0c;就不能使用axios封裝的接口&#xff0c;需要使用原生的fetch。 找到公共的文件App.vue 使用window.addEventListener(‘beforeunload’, function (e…

TCP/IP 模型每層的封裝格式

TCP/IP 模型是一個四層網絡架構&#xff0c;每一層在數據傳輸時都會對數據進行封裝&#xff0c;添加相應的頭部&#xff08;和尾部&#xff09;信息。以下是各層的封裝格式及關鍵字段說明&#xff1a; 1. 應用層&#xff08;Application Layer&#xff09; 封裝格式&#xff1a…

【行業深度解析】什么是馬甲包?

在 Android 應用分發和增長運營的實踐中&#xff0c;“馬甲包” 是一個常被提及的策略術語。特別是在 Google Play 平臺上&#xff0c;許多開發者或運營團隊出于營銷、風險分攤或生態布局等原因&#xff0c;會選擇通過發布“馬甲包”來實現多元化的業務拓展。 然而&#xff0c…

谷歌與微軟的AI戰爭:搜索、云服務與生態布局

谷歌與微軟的AI戰爭&#xff1a;搜索、云服務與生態布局 系統化學習人工智能網站&#xff08;收藏&#xff09;&#xff1a;https://www.captainbed.cn/flu 文章目錄 谷歌與微軟的AI戰爭&#xff1a;搜索、云服務與生態布局摘要引言技術路線對比1. AI基礎設施&#xff1a;算力…

uniapp自定義導航欄搭配插槽

<uni-nav-bar dark :fixed"true" shadow background-color"#007AFF" left-icon"left" left-text"返回" clickLeft"back"><view class"nav-bar-title">{{ navBarTitle }}</view><block v-slo…

無人機飛控算法開發實戰:從零到一構建企業級飛控系統

簡介 無人機飛控算法是實現穩定飛行和精確控制的核心技術,涉及飛行動力學建模、傳感器數據處理、狀態估計和控制策略等多個環節。本實戰指南將系統講解四旋翼無人機飛控算法的開發流程,包括飛行動力學模型建立、傳感器校準與數據融合、主流控制算法實現(PID、ADRC、EKF)以…

p2p虛擬服務器

ZeroTier Central ? 推薦工具&#xff1a;ZeroTier&#xff08;免費、穩定、跨平臺&#xff09; ZeroTier 可以幫你把多臺設備&#xff08;無論是否跨網&#xff09;加入一個虛擬局域網&#xff0c;彼此間可以像在同一個 LAN 中通信&#xff0c;UDP 視頻、文件傳輸、SSH 等都…

MySQL數據庫遷移SQL語句指南

MySQL數據庫遷移SQL語句指南 一、基礎遷移方法 1. 使用mysqldump進行全量遷移 -- 導出源數據庫&#xff08;在命令行執行&#xff09; mysqldump -u [源用戶名] -p[源密碼] --single-transaction --routines --triggers --events --master-data2 [數據庫名] > migration…

畫立方體軟件開發筆記 js three 投影 參數建模 旋轉相機 @tarikjabiri/dxf導出dxf

gitee&#xff1a; njsgcs/njsgcs_3d mainwindow.js:4 Uncaught SyntaxError: The requested module /3dviewport.js does not provide an export named default一定要default嗎 2025-05-10 14-27-58 專門寫了個代碼畫立方體 import{ scene,camera,renderer} from ./3dviewp…

【工具】HandBrake使用指南:功能詳解與視頻轉碼

HandBrake使用指南&#xff1a;功能詳解與視頻轉碼 一、前言 高清視頻在當下日益普及&#xff0c;從影視制作到個人拍攝&#xff0c;從社交媒體發布到遠程教育&#xff0c;如何高效地壓縮、轉換和管理視頻文件的體積與清晰度&#xff0c;成為內容創作者與技術開發者的核心任務…

Docker容器網絡架構深度解析與技術實踐指南——基于Linux內核特性的企業級容器網絡實現

第1章 容器網絡基礎架構 1 Linux網絡命名空間實現原理 1.1內核級隔離機制深度解析 1.1.1進程隔離的底層實現 通過clone()系統調用創建新進程時&#xff0c;設置CLONE_NEWNET標志位將觸發內核執行以下操作&#xff1a; 內核源碼示例&#xff08;linux-6.8.0/kernel/fork.c&a…