Langchain编程中常见Python库讲解【3】

本文罗列部分依赖的python库代码举例
pydantic-core, pyarrow, openpyxl, opencv-python, numexpr, marshmallow, markdown-it-py, loguru, langdetect,jsonpatch, jinja2, importlib-resources, importlib-metadata, httpcore, htbuilder, h2, gitdb, emoji, deprecation, deepdiff, contourpy, coloredlogs, click, beautifulsoup4, anyio, annotated-types, aiosignal,uvicorn, tiktoken, starlette, st-annotated-text, rich, requests-toolbelt, pydeck, pydantic, pandas, onnxruntime, nltk, matplotlib, markdownify, markdown, langchainhub, jsonschema-specifications, httpx,gitpython, favicon, faker, dataclasses-json, aiohttp, nstructured-client, rapidocr_onnxruntime, pymdown-extensions, pydantic_settings, openai, langsmith, jsonschema, fastapi, unstructured, sse_starlette, langchain-core, altair, streamlit, langchain-text-splitters, langchain-openai

相关参考

【Langchain编程中常见Python库讲解【2】
【Langchain编程中常见Python库讲解【1】
【Langchain编程中常见Python库以及用途】

以下是各个库的简单示例代码:
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/Climbman/article/details/141512948
以下是对每个库的核心描述和简单的代码示例:

  1. pydantic-core:用于数据验证和解析的核心库,是pydantic的底层实现。

    from pydantic import BaseModel
    
    class MyModel(BaseModel):
        name: str
        age: int
    
    data = {'name': 'Alice', 'age': 30}
    obj = MyModel(**data)
    print(obj)
    
  2. pyarrow:提供高效的内存数据结构和大数据处理工具。

    import pyarrow as pa
    
    # 创建一个整数列表
    integers = [1, 2, 3, 4, 5]
    # 将列表转换为 PyArrow 数组
    array = pa.array(integers)
    print(array)
    
  3. openpyxl:用于读写 Excel 文件的 Python 库。

    from openpyxl import Workbook
    
    wb = Workbook()
    ws = wb.active
    ws['A1'] = 'Hello'
    ws['B1'] = 'World'
    wb.save('example.xlsx')
    
  4. opencv-python:用于计算机视觉的库。

    import cv2
    
    img = cv2.imread('image.jpg')
    cv2.imshow('Image', img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    
  5. numexpr:快速数值表达式评估库。

    import numexpr as ne
    
    a = [1, 2, 3, 4, 5]
    b = [6, 7, 8, 9, 10]
    result = ne.evaluate('a + b')
    print(result)
    
  6. marshmallow:用于将复杂的对象类型转换为简单的 Python 数据类型,以及进行反序列化。

    from marshmallow import Schema, fields
    
    class PersonSchema(Schema):
        name = fields.Str()
        age = fields.Int()
    
    data = {'name': 'Alice', 'age': 30}
    schema = PersonSchema()
    result = schema.load(data)
    print(result)
    
  7. markdown-it-py:Markdown 解析器。

    from markdown_it import MarkdownIt
    
    md = MarkdownIt()
    rendered = md.render('# Hello, world!')
    print(rendered)
    
  8. loguru:简单易用的日志记录库。

    from loguru import logger
    
    logger.info('Hello, world!')
    
  9. langdetect:语言检测库。

    from langdetect import detect
    
    text = 'Hello, world!'
    language = detect(text)
    print(language)
    
  10. jsonpatch:用于处理 JSON 补丁的库。

from jsonpatch import JsonPatch

patch = JsonPatch([{'op': 'add', 'path': '/new_key', 'value': 'new_value'}])
data = {'old_key': 'old_value'}
patched_data = patch.apply(data)
print(patched_data)
  1. jinja2:模板引擎库。
from jinja2 import Template

template = Template('Hello, {{ name }}!')
result = template.render(name='Alice')
print(result)
  1. importlib-resources:用于访问包内资源的库。
import importlib_resources

with importlib_resources.open_text('my_package', 'data.txt') as f:
    content = f.read()
    print(content)
  1. importlib-metadata:用于获取包的元数据。
from importlib.metadata import version

print(version('numpy'))
  1. httpcore:底层 HTTP 客户端库。
import httpcore

connection = httpcore.ConnectionPool()
response = connection.request('GET', 'https://example.com')
print(response.status_code)
  1. htbuilder:用于构建 HTML 的库。
from htbuilder import div

my_div = div(id='my_div', style='color: red;')
print(my_div)
  1. h2:HTTP/2 协议实现库。
import h2.connection

conn = h2.connection.H2Connection()
conn.initiate_connection()
print(conn.local_settings)
  1. gitdb:用于与 Git 数据库交互的库。
from gitdb import LooseObjectDB

db = LooseObjectDB('/path/to/git/repo')
for obj in db:
    print(obj)
  1. emoji:处理 emoji 表情的库。
import emoji

text = 'Hello 😊 world!'
emojis = emoji.emoji_list(text)
print(emojis)
  1. deprecation:用于标记函数或类已过时的库。
from deprecation import deprecated

@deprecated(deprecated_in='1.0', removed_in='2.0', details='Use new_function instead.')
def old_function():
    return 'Old function'

print(old_function())
  1. deepdiff:用于深度比较两个对象的库。
from deepdiff import DeepDiff

a = {'a': 1, 'b': 2}
b = {'a': 1, 'b': 3}
diff = DeepDiff(a, b)
print(diff)
  1. contourpy:用于绘制等高线的库。
import numpy as np
import contourpy

x = np.linspace(-2, 2, 100)
y = np.linspace(-2, 2, 100)
X, Y = np.meshgrid(x, y)
Z = X**2 + Y**2
cont = contourpy.contour_generator(X, Y, Z)
print(cont.lines(1))
  1. coloredlogs:为日志添加颜色的库。
import coloredlogs, logging

logger = logging.getLogger(__name__)
coloredlogs.install(level='DEBUG', logger=logger)
logger.debug('This is a debug message')
  1. click:用于创建命令行界面的库。
import click

@click.command()
@click.option('--name', prompt='Your name', help='The person to greet.')
def hello(name):
    click.echo(f'Hello, {name}!')

if __name__ == '__main__':
    hello()
  1. beautifulsoup4:用于网页解析的库。
from bs4 import BeautifulSoup

html = '<html><body><h1>Hello, world!</h1></body></html>'
soup = BeautifulSoup(html, 'html.parser')
print(soup.h1.text)
  1. anyio:异步编程库。
import anyio

async def main():
    print('Hello, world!')

anyio.run(main)
  1. annotated-types:用于类型注解的扩展库。
from annotated_types import Gt

x: Gt[0] = 1
print(x)
  1. aiosignal:用于异步信号处理的库。
import asyncio
import aiosignal

async def handler(signum):
    print(f'Received signal {signum}')

async def main():
    await aiosignal.signal(2, handler)
    await asyncio.sleep(60)

asyncio.run(main())
  1. uvicorn:快速的 ASGI 服务器。
# 创建一个简单的 FastAPI 应用并使用 uvicorn 运行
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="127.0.0.1", port=8000)
  1. tiktoken:用于处理 OpenAI 的 token 的库。
import tiktoken

enc = tiktoken.get_encoding("cl100k_base")
tokens = enc.encode("Hello, world!")
print(tokens)
  1. starlette:轻量级的 ASGI 框架。
from starlette.applications import Starlette
from starlette.responses import PlainTextResponse

app = Starlette()

@app.route("/")
def homepage(request):
    return PlainTextResponse("Hello, world!")

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="127.0.0.1", port=8000)
  1. st-annotated-text:用于在 Streamlit 中显示带注释的文本的库。
import streamlit as st
from st_annotated_text import annotated_text

annotated_text(("Hello, ", "world!"))
  1. rich:提供丰富的终端输出格式的库。
from rich import print

print('[bold red]Hello, world![/bold red]')
  1. requests-toolbelt:增强版的requests库。
from requests_toolbelt.multipart.encoder import MultipartEncoder

m = MultipartEncoder(fields={'field0': 'value0', 'field1': 'value1'})
print(m.to_string())
  1. pydeck:用于创建交互式地图可视化的库。
import pydeck as pdk

view_state = pdk.ViewState(latitude=37.7749, longitude=-122.4194, zoom=10)
layer = pdk.Layer('HexagonLayer', data=None, get_position='[lng, lat]', radius=200, elevation_scale=4, elevation_range=[0, 1000])
deck = pdk.Deck(layers=[layer], initial_view_state=view_state)
deck.to_html('map.html')
  1. pydantic:用于数据验证和解析的库。
from pydantic import BaseModel

class Person(BaseModel):
    name: str
    age: int

data = {'name': 'Alice', 'age': 30}
person = Person(**data)
print(person)
  1. pandas:强大的数据处理和分析库。
import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie'], 'age': [30, 25, 35]}
df = pd.DataFrame(data)
print(df)
  1. onnxruntime:用于运行 ONNX 模型的库。
import onnxruntime as rt

sess = rt.InferenceSession('model.onnx')
input_name = sess.get_inputs()[0].name
output_name = sess.get_outputs()[0].name
input_data = [1, 2, 3]
result = sess.run([output_name], {input_name: [input_data]})
print(result)
  1. nltk:自然语言处理工具包。
import nltk
nltk.download('punkt')
from nltk.tokenize import word_tokenize

text = "Hello, world! This is a test."
tokens = word_tokenize(text)
print(tokens)
  1. matplotlib:数据可视化库。
import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.plot(x, y)
plt.show()
  1. markdownify:将 HTML 转换为 Markdown 的库。
import markdownify

html = '<h1>Hello, world!</h1>'
markdown = markdownify.markdownify(html)
print(markdown)
  1. markdown:Markdown 解析和生成库。
import markdown

text = '# Hello, world!'
html = markdown.markdown(text)
print(html)
  1. langchainhub:LangChain 的中心库。
# 目前不太清楚具体的简单示例,因为它可能需要与其他库结合使用。
  1. jsonschema-specifications:用于处理 JSON Schema 规范的库。
# 不太清楚具体的简单示例,因为它可能需要与其他库结合使用。
  1. httpx:现代的 HTTP 客户端库。
import httpx

response = httpx.get('https://example.com')
print(response.status_code)
  1. gitpython:用于与 Git 仓库交互的库。
from git import Repo

repo = Repo('/path/to/git/repo')
print(repo.active_branch)
  1. favicon:用于处理网站图标(favicon)的库。
# 不太清楚具体的简单示例,因为它可能需要与其他库结合使用。
  1. faker:用于生成假数据的库。
from faker import Faker

fake = Faker()
print(fake.name())
  1. dataclasses-json:用于将数据类与 JSON 进行序列化和反序列化的库。
from dataclasses import dataclass
from dataclasses_json import dataclass_json

@dataclass_json
@dataclass
class Person:
    name: str
    age: int

person = Person(name='Alice', age=30)
json_data = person.to_json()
print(json_data)
  1. aiohttp:异步 HTTP 客户端/服务器库。
import aiohttp

async def main():
    async with aiohttp.ClientSession() as session:
        async with session.get('https://example.com') as response:
            print(response.status)

asyncio.run(main())
  1. nstructured-client:不太清楚具体功能,无法给出示例。

  2. rapidocr_onnxruntime:用于 OCR 的库。

# 不太清楚具体的简单示例,因为它可能需要与其他库结合使用。
  1. pymdown-extensions:用于扩展 Markdown 的库。
# 不太清楚具体的简单示例,因为它可能需要与其他库结合使用。
  1. pydantic_settings:与pydantic一起用于配置管理的库。
from pydantic_settings import BaseSettings

class Settings(BaseSettings):
    api_key: str

settings = Settings()
print(settings.api_key)
  1. openai:OpenAI 的 Python 库。
import openai

openai.api_key = 'your_api_key'
response = openai.Completion.create(engine="davinci", prompt="Hello, world!")
print(response.choices[0].text)
  1. langsmith:用于语言处理的库。
# 不太清楚具体的简单示例,因为它可能需要与其他库结合使用。
  1. jsonschema:用于验证 JSON 数据的库。
from jsonschema import validate

schema = {
    "type": "object",
    "properties": {
        "name": {"type": "string"},
        "age": {"type": "integer"}
    },
    "required": ["name", "age"]
}

data = {"name": "Alice", "age": 30}
validate(instance=data, schema=schema)
  1. fastapi:快速的 Web 框架。
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}
  1. unstructured:用于处理非结构化数据的库。
# 不太清楚具体的简单示例,因为它可能需要与其他库结合使用。

59

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值