avatar
文章
62
标签
21
分类
10

首页
标签
分类
归档
清单
  • 知识库
  • AI资源清单
AGI Explained
首页
标签
分类
归档
清单
  • 知识库
  • AI资源清单
SQLModel时间戳字段的使用
发表于2024-04-23|Python|Python•SQLModel
在表定义中,经常需要使用createtime、updatetime两个字段,在SQLModel中,可以定义这样一个数据模型: 1234567891011121314151617181920class TimestampModel(SQLModel): """ 时间公共字段模型定义 """ create_time: datetime = Field( default_factory=partial(datetime.now, UTC), nullable=False, description="创建时间", sa_column_kwargs={ "server_default": text("CURRENT_TIMESTAMP") } ) update_time: datetime = Field( default_fac ...
FastAPI统一异常处理
发表于2024-04-20|Python|FastAPI•Python
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192# -*- coding: utf-8 -*-import loggingfrom starlette.exceptions import HTTPExceptionfrom fastapi import FastAPI, Request, statusfrom fastapi.encoders import jsonable_encoderfrom fastapi.exceptions import RequestValidationErrorfrom app.extensions.fastapi.api import ApiResponselogger = logging.getLogger(__name__)error_message ...
python asyncio
发表于2024-04-07|Python|Python
asyncio 概述asyncio 是 Python 3.4 之后引入的一个标准库,用于编写单线程并发网络代码。它使用事件循环(event loop)来管理 I/O 操作,从而避免了传统的多线程或多进程带来的复杂性和性能开销。asyncio 的主要特点是它支持异步 I/O 操作、任务(task)调度和协程(coroutine)。 asyncio 原理性解析1 事件循环 事件循环是 asyncio 的核心,它负责监听 I/O 事件、执行回调函数以及调度协程。事件循环通常通过 asyncio.get_event_loop() 获取,并使用 run_until_complete() 或 create_task() 来执行协程。但通常我们使用 asyncio.run() 来启动最顶层的协程,并自动创建和关闭事件循环。 1234567import asyncioasync def main(): loop = asyncio.get_running_loop() print(loop)asyncio.run(main()) 2 协程 协程是一种轻量级的 ...
Python依赖和包管理工具Poetry
发表于2024-04-05|Python|Python
Poetry 是一个现代的Python包管理工具,它解决了很多传统工具如 pip 和 virtualenv 组合使用时遇到的问题,同时还集成了包的依赖管理和发布功能。 为什么使用 Poetry 依赖管理和版本控制:Poetry 自动处理项目的依赖关系,并确保解决方案的一致性。它通过 pyproject.toml 和 poetry.lock 文件精确控制依赖版本,避免了依赖地狱。 简化虚拟环境管理:Poetry 自动创建和管理虚拟环境,无需手动使用 virtualenv。这意味着每个项目都有自己独立的环境,从而避免了包版本冲突。 一体化工作流:从创建项目、添加依赖、安装依赖到打包和发布,Poetry 提供了一套一致的命令接口,简化了工作流程。 便于项目协作:通过将 pyproject.toml 和 poetry.lock 文件加入版本控制,团队成员可以确保在不同的开发环境中使用完全相同的依赖,从而减少“在我机器上能运行”这类问题。 安装 Poetry首先,需要安装 Poetry。官方推荐的安装方式是使用其安装脚本,以确保安装最新版本: 1curl -sSL https://raw.gi ...
LCEL 接口
发表于2024-04-02|LangChain|LangChain
为了尽可能简单地创建自定义链,LangChain 提出了“Runnable”标准接口协议。目前,LangChain 中的大多数组件都已实现了 Runnable 协议,用户可以轻松构建自定义链并以标准方式调用它们。其中,标准接口包括: stream:流式输出响应内容块 invoke:通过输入来调用链 batch:通过批量输入来调用链 对应的异步方法: astream:异步流式调用 ainvoke:简单异步调用 abatch:批量异步调用 astream_log:除了最终响应之外,同时返回中间步骤 astream_events:链中发生的流事件(在 langchain-core 0.1.14 中引入) 各组件的输入类型和输出类型列表如下: 组件 输入 输出 Prompt Dictionary PromptValue ChatModel 单一字符串 / 聊天信息列表 / PromptValue ChatMessage LLM 单一字符串 / 聊天信息列表 / PromptValue 字符串 OutputParser LL ...
LangSmith 入门
发表于2024-04-01|LangChain|LangChain
LangChain 可以用来轻松构建LLM应用和 Agent 的原型。然而,将LLM应用交付到生产环境将会困难得多。我们必须多次迭代提示词、链和其他组件才能构建高质量的产品。 在这个过程中间,LangSmith 可以协助我们轻松调试、测试和持续改进LLM应用程序。 那么,什么时候需要用到 LangSmith 呢。主要使用场景如下: 快速调试一个新的链、Agent或工具集 创建和管理数据集以进行微调、少样本提示以及评估 对应用程序进行回归测试以便开发更顺利 为进一步洞察产品和持续改进,需要进行产品深入分析 前提创建 LangSmith 帐户并在 Settings - API keys 创建 API 密钥。相关文档参见 docs** 注:LangSmith 处于封闭测试阶段,单人使用有免费额度。 将记录运行结果记录到 LangSmith要将中间运行结果记录到 LangSmith,我们需要配置几个环境变量。 1234LANGCHAIN_TRACING_V2="true"LANGCHAIN_PROJECT="Tracing Walkthrough - my ...
LangChain 为什么使用 LCEL(二)
发表于2024-03-30|LangChain|LangChain
运行时可配置如果我们想要在运行时灵活配置所使用的大模型,可以使用如下方法: 首先,先安装 langchain_anthropic,方便下文中使用 claude 模型 1pip install langchain_anthropic 1234567891011121314151617181920212223242526272829303132from langchain_openai import OpenAIfrom langchain_openai import ChatOpenAIfrom langchain_anthropic import ChatAnthropicfrom langchain_core.runnables import ConfigurableFieldfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.runnables import Runnable ...
提示工程(学习笔记)
发表于2024-03-22|Prompt|Prompt
概念 Prompt template 是生成语言模型提示词的预定义方案。模板包括说明、少量示例以及给定任务的特定上下文和问题。 PromptTemplate创建字符串提示的模板。支持任意数量的变量,包括无变量。一般使用在单轮对话中 ChatPromptTemplate 聊天消息列表,每条聊天消息都有内容以及附加参数相关联 role 高质量 prompt 核心要点具体、丰富、少歧义 Prompt 的典型构成(把AI当人看) 角色:给 AI 定义一个最匹配任务的角色,比如:「你是一位软件工程师」「你是一位小学老师」。通过角色定义,在开头收紧问题域,减少二义性。 指示:对任务进行描述 上下文:给出与任务相关的其它背景信息(尤其在多轮交互中) 例子:必要时给出举例,学术中称为 one-shot learning, few-shot learning 或 in-context learning;实践证明其对输出正确性有很大帮助 输入:任务的输入信息;在提示词中明确的标识出输入 输出:输出的格式描述,以便后继模块自动解析模型的输出结果,比如(JSON、XML) 大模型对 prompt 开头和 ...
LangChain 为什么使用 LCEL
发表于2024-03-22|LangChain|LangChain
通过如下设计实现,LCEL 提供了一系列功能,使从基本组件构建复杂链变得容易便捷。 统一接口:每一个 LCEL对象都实现了 Runnable 接口,该接口定义了一组公共调用方法(invoke, batch, stream, ainvoke, …)。这使得 LCEL 链本身也可以支持这种调用,即每个 LCEL 对象链本身也是一个 LCEL 对象。 组合原语:LCEL 提供了一系列原语,可以很容易支持组合链,并行组件,添加回退,动态配置链内部运行机制等等。 为了更好理解 LCEL 的价值,看看使用了 LCEL 之前、之后的案例是很有帮助的。下面,我们将选用入门部分的部分基本案例,进行两者之间的对比。 Invoke在这个最简单的案例中,我们只需传入一个 topic 字符串,并获得一个相关的笑话字符串: 无 LCEL 的实现12345678910111213141516171819from typing import Listimport openaiprompt_template = "Tell me a short joke about {topic}&q ...
LangChain LCEL 起步(二)
发表于2024-03-19|LangChain|LangChain
RAG 案例下一个例子,我们将构建一个检索增强生成(RAG)链,以便在回答问题时添加一些上下文。 12345678910111213141516171819202122232425262728293031# 在运行前,需要安装以下包:# pip install langchain docarray tiktokenfrom langchain_community.vectorstores import DocArrayInMemorySearchfrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_core.runnables import RunnableParallel, RunnablePassthroughfrom langchain_openai.chat_models import ChatOpenAIfrom langchain_openai import OpenAIEmbed ...
1…4567
avatar
Eryx Lee
文章
62
标签
21
分类
10
Follow Me
最新文章
Vibe Coding2025-03-31
Xinference、Ollama 和 vLLM 比较2024-12-20
使用Xinference部署本地大模型2024-12-13
使用vLLM部署本地大模型2024-12-07
llama.cpp 编译使用2024-12-01
分类
  • FastAPI7
  • General1
  • LLM7
  • LangChain17
  • Prompt1
  • Pydantic1
  • Python21
  • pytest5
标签
SQLModel Vibe Coding ollama LLM Ollama pytest LangChain mkdocs Docker vLLM tools FastAPI Cache Xinference ruff Pydantic Python Celery llama.cpp RAG Prompt
归档
  • 三月 20251
  • 十二月 20244
  • 十一月 20246
  • 十月 20241
  • 九月 20241
  • 八月 20246
  • 七月 20247
  • 六月 20245
网站资讯
文章数目 :
62
本站访客数 :
本站总访问量 :
最后更新时间 :
©2023 - 2025 By Eryx Lee
框架 Hexo|主题 Butterfly
浙ICP备2024062350号-1