最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中類型注解Literal的實現(xiàn)

 更新時間:2026年07月15日 08:33:14   作者:亂寫代碼  
本文主要介紹了Python中類型注解Literal的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

查看LangChain源碼時,發(fā)現(xiàn)Literal

class Document(BaseMedia):
    """Class for storing a piece of text and associated metadata.

    !!! note

        `Document` is for **retrieval workflows**, not chat I/O. For sending text
        to an LLM in a conversation, use message types from `langchain.messages`.

    Example:
        ```python
        from langchain_core.documents import Document

        document = Document(
            page_content="Hello, world!", metadata={"source": "https://example.com"}
        )
        ```
    """

    page_content: str
    """String text."""

    type: Literal["Document"] = "Document"

作用:靜態(tài)代碼檢查時,如果type為其他值,即!="Document",會發(fā)生報錯。 注:在不實際運行程序(不執(zhí)行代碼)的情況下,通過分析源代碼的文本結(jié)構(gòu)來找出潛在的錯誤。

進一步,LangChain 框架中的深層作用

序列化時的“防偽標簽” 當 LangChain 將 Document 對象轉(zhuǎn)換成 JSON 字符串時,type: Literal["Document"] 保證了輸出的 JSON 里一定會包含這個標簽 如下:

print(f"轉(zhuǎn)換格式后:\n{json.dumps(document1_json, ensure_ascii=False, indent=2)}")

# 轉(zhuǎn)換格式后,{
#   "lc": 1,
#   "type": "constructor",
#   "id": [
#     "langchain",
#     "schema",
#     "document",
#     "Document"
#   ],
#   "kwargs": {
#     "metadata": {
#       "author": "張三",
#       "page": 10
#     },
#     "page_content": "LangChain 是一個用于開發(fā)大語言模型應用的框架。",
#     "type": "Document" 
#   }
# }

配合 Pydantic 的運行時校驗 Pydantic 會直接拋出驗證錯誤,防止臟數(shù)據(jù)污染系統(tǒng)

例子:

from pydantic import BaseModel
from typing import Literal

class MyClass(BaseModel):
    type: Literal["red"] = "red"

obj = MyClass()
obj.type = "Image"  # ? Pydantic 會在運行時拋出 ValidationError

到此這篇關(guān)于Python中類型注解Literal的實現(xiàn)的文章就介紹到這了,更多相關(guān)Python 類型注解Literal內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • python生成隨機唯一id的幾種實現(xiàn)方法

    python生成隨機唯一id的幾種實現(xiàn)方法

    在Python中生成隨機唯一ID有多種方法,根據(jù)不同的需求場景可以選擇最適合的方案,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2025-07-07
  • Python3 socket同步通信簡單示例

    Python3 socket同步通信簡單示例

    這篇文章主要介紹了Python3 socket同步通信功能,結(jié)合簡單實例形式分析了Python socket同步通信客戶端與服務器端實現(xiàn)技巧,需要的朋友可以參考下
    2017-06-06
  • 帶你了解python裝飾器

    帶你了解python裝飾器

    Python中的裝飾器是你進入Python大門的一道坎,不管你跨不跨過去它都在那里。Python中的裝飾器的概念經(jīng)常會讓人搞得一頭霧水,所以今天就好好來分析一下python中的裝飾器
    2017-06-06
  • 1秒鐘使用python建立文件服務器的方法步驟

    1秒鐘使用python建立文件服務器的方法步驟

    本文主要介紹了1秒鐘使用python建立文件服務器的方法步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 膠水語言Python與C/C++的相互調(diào)用的實現(xiàn)

    膠水語言Python與C/C++的相互調(diào)用的實現(xiàn)

    這篇文章主要介紹了膠水語言Python與C/C++的相互調(diào)用的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • Python函數(shù)any()和all()的用法及區(qū)別介紹

    Python函數(shù)any()和all()的用法及區(qū)別介紹

    any函數(shù):any(x),只要x中有一個不為空,0,false就返回True,否則返回False。all(x)函數(shù)必須x中的所有元素均不為空,0,false才會返回True,否則返回False。接下來通過本文給大家介紹Python函數(shù)any()和all()的用法及區(qū)別介紹,需要的朋友參考下吧
    2018-09-09
  • python 實現(xiàn) hive中類似 lateral view explode的功能示例

    python 實現(xiàn) hive中類似 lateral view explode的功能示例

    這篇文章主要介紹了python 實現(xiàn) hive中類似 lateral view explode的功能示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python 實現(xiàn)將numpy中的nan和inf,nan替換成對應的均值

    Python 實現(xiàn)將numpy中的nan和inf,nan替換成對應的均值

    這篇文章主要介紹了Python 實現(xiàn)將numpy中的nan和inf,nan替換成對應的均值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python可變參數(shù)會自動填充前面的默認同名參數(shù)實例

    Python可變參數(shù)會自動填充前面的默認同名參數(shù)實例

    今天小編就為大家分享一篇Python可變參數(shù)會自動填充前面的默認同名參數(shù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python監(jiān)控日志中的報錯并進行郵件報警

    python監(jiān)控日志中的報錯并進行郵件報警

    這篇文章主要為大家介紹了python監(jiān)控日志中的報錯并進行郵件報警的實現(xiàn)實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06

最新評論

含山县| 阳曲县| 高阳县| 正安县| 阜康市| 龙陵县| 内江市| 阳原县| 克山县| 阜康市| 邓州市| 油尖旺区| 丹棱县| 武威市| 荥阳市| 平江县| 三台县| 长春市| 沂南县| 渭南市| 龙岩市| 通海县| 山东省| 南雄市| 云龙县| 庆城县| 醴陵市| 青冈县| 那曲县| 潍坊市| 农安县| 沾益县| 永康市| 温宿县| 龙山县| 黄浦区| 红桥区| 常宁市| 宣化县| 金山区| 武定县|