使用LangChain实现文本嵌入:OpenAI与BGE模型对比实践
在自然语言处理领域,文本嵌入(Text Embeddings)是一项核心技术,它能够将文本转换为高维向量表示,使计算机能够更好地理解和处理文本数据。本文将通过实践示例,展示如何使用LangChain框架来实现文本嵌入,并对比OpenAI和BGE(BAAI)两种不同的嵌入模型。
在自然语言处理领域,文本嵌入(Text Embeddings)是一项核心技术,它能够将文本转换为高维向量表示,使计算机能够更好地理解和处理文本数据。本文将通过实践示例,展示如何使用LangChain框架来实现文本嵌入,并对比OpenAI和BGE(BAAI)两种不同的嵌入模型。
系统安装 fnOS启动盘制作(MacOS下) 列出磁盘,找到U盘的盘符 diskutil list /dev/disk4 (external, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *15.5 GB disk4 取消U盘的挂载: diskutil unmountDisk /dev/disk4 Unmount of all volumes on disk4 was successful 执行下面的命令导入fnOS镜像:
模型上下文协议(MCP)建立在灵活且可扩展的架构之上,实现了大语言模型应用(LLM Applications)与各种集成(Integretions)之间的无缝通信。 本文将详细介绍MCP的核心架构组件和基本概念,了解MCP如何连接客户端(Client)、服务器(Server)和大语言模型(LLM)。
目前许多大型语言模型(LLMs)还不具备获取天气预报和灾害天气预警的能力。让我们使用MCP来解决这个问题! 在本文中,我们将构建一个MCP Server,暴露两个工具(tools):get-alerts(获取预警)和get-forecast(获取天气预报)。
uv的文档“Environment variables”中详细的给出了uv自己定义使用的和uv遵循使用的环境变量。 这里记录个人平时经常使用的一些环境变量。 UV_PYTHON_INSTALL_MIRROR uv管理的Python安装包是从python-build-standalone项目下载的。 环境变量UV_PYTHON_INSTALL_MIRROR可以设置为镜像URL,以使用不同的Python安装包源。提供的URL将替换https://github.com/astral-sh/python-build-standalone/releases/download在下载链接中的部分。例如,链接 https://github.com/astral-sh/python-build-standalone/releases/download/20240713/cpython-3.12.4%2B20240713-aarch64-apple-darwin-install_only.tar.gz。
最近在开发MCP Server时,注意到MCP官方Python教程推荐使用uv作为包管理器。uv是一个用Rust编写的高性能Python包和项目管理工具,它不仅能替代pip、pip-tools、pipx、poetry、pyenv、twine和virtualenv等多个工具,还能提供10-100倍的性能提升。作为一个poetry的长期用户,决定趁着这次学习MCP的机会,将个人Python开发环境从poetry迁移到uv。
在使用LangChain的ChatOpenAI访问LLM的API时,有时会遇到需要通过HTTP代理访问LLM API的场景,或者由于本地网络环境、公司内网等原因,需要关闭SSL证书验证。本文将介绍如何通过httpx客户端在LangChain中实现这两个需求。
在使用LangChain进行结构化数据抽取时,常见的两种方式分别是OutputParser和Structured Output。二者在调用OpenAI API时的请求报文和底层机制存在明显差异。本文通过具体代码示例,详细对比这两种方式的实现细节、API请求体、响应内容,并分析各自的优缺点和适用场景,可根据实际需求做出选择。
概念 Prompt template、Chat Model、Messages、Output parser、Structured output是LangChain框架的重要组件和概念。通过有效地组合这些组件,可以构建出简单的LLM应用。 Prompt template:用于提取模型"提示"中静态部分的组件(通常是一系列消息)。它们对于序列化、版本控制和重用这些静态部分非常有用。 Chat Model:通过Chat API暴露的大语言模型,处理一系列消息作为输入并输出一条消息。 Messages:聊天模型中的通信单位,用于表示模型的输入和输出。 Output parser:负责将模型的输出转换为更适合下游任务的格式。在工具调用(Tool calling)和结构化输出(Structured output)普及之前,输出解析器主要用于此目的。 Structured output:一种使ChatModel以结构化格式(如符合给定模式的JSON)响应的技术。 可以以通过两种方式组合这些组件:
近期我们对两个环境中的OpenTelemetry Collector进行了版本升级,从v0.114.0升级到了v0.121.0。这次升级涉及一些配置变化,本文将记录一些升级过程中的关键点和经验总结。 环境信息 这两套环境采用了相同的部署架构:首先通过Helm安装opentelemetry-operator,然后利用OpenTelemetry Collector的CRD(自定义资源定义)创建OpenTelemetryCollector资源。opentelemetry-operator会根据这些资源定义,在Kubernetes集群的每个节点上以DaemonSet的形式部署OpenTelemetry Collector Pod,实现分布式的遥测数据采集。