当前位置: 首页 > wzjs >正文

微网站搭建平台网络营销概念

微网站搭建平台,网络营销概念,重庆市造价工程信息网官网,做个外贸网站对比 对比维度及优缺点分析对比维度LangChain(封装 FAISS)直接使用 FAISS易用性✅ 高,提供高级封装,简化开发流程❌ 中等,需要熟悉 FAISS API学习成本✅ 低,适合快速开发❌ 高,需要掌握 FAISS 的…

对比

对比维度及优缺点分析

对比维度LangChain(封装 FAISS)直接使用 FAISS
易用性✅ 高,提供高级封装,简化开发流程❌ 中等,需要熟悉 FAISS API
学习成本✅ 低,适合快速开发❌ 高,需要掌握 FAISS 的索引类型、添加/查询流程等
集成能力✅ 强,天然支持 LLM、Prompt、Chain 等模块❌ 弱,需手动集成 LLM 相关逻辑
封装程度✅ 高,隐藏底层实现细节✅ 低,需自己管理索引、内存、数据结构等
灵活性❌ 有限,依赖 LangChain 提供的封装接口✅ 高,可完全控制 FAISS 行为
性能优化❌ 一般,封装可能带来额外开销✅ 高,可针对特定场景进行优化
持久化支持✅ 有,LangChain 提供了 save_local / load_local 方法✅ 有,FAISS 也支持保存和加载索引文件
索引类型支持✅ 有限(通常使用 IndexFlatL2)✅ 丰富(支持 IndexFlatL2、IVFPQ、HNSW 等)
扩展性✅ 高,可轻松对接其他向量数据库(如 Pinecone、Chroma)❌ 低,需手动切换数据库
部署难度✅ 低,适合本地开发、小项目✅ 中等,适合中大型项目或生产环境优化
调试与维护✅ 简单,封装好日志、错误提示❌ 复杂,需自行处理底层错误、内存问题等

典型使用场景对比

使用场景推荐方式说明
快速搭建一个本地向量数据库✅ LangChain + FAISS适合开发、测试、教学
需要高性能、大规模向量检索✅ 直接使用 FAISS可选择 IVFPQ、HNSW 等高效索引
与 LLM、Prompt、Chain 结合使用✅ LangChainLangChain 提供了统一接口,方便构建完整流程
需要切换向量数据库(如从 FAISS 切换到 Pinecone)✅ LangChain封装抽象,只需改配置
需要深度优化索引性能✅ 直接使用 FAISS可灵活配置索引类型、量化方式等
生产环境部署✅ LangChain + FAISS(简单场景)
✅ 直接使用 FAISS(复杂场景)
根据规模和性能需求选择

本地搭建embedding模型(Qwen3-Embedding-0.6B)

本文向量提取均使用本地embedding模型

vllm下载

conda create -n myenv python=3.12 -y
conda activate myenv
pip install --upgrade uv
uv pip install vllm --torch-backend=auto -i https://pypi.tuna.tsinghua.edu.cn/simple

下载模型

pip install modelscope
mkdir models
modelscope download --model Qwen/Qwen3-Embedding-0.6B --local_dir /models/Qwen3-Embedding-8B
modelscope download --model Qwen/Qwen3-Embedding-0.6B --local_dir /models/Qwen3-Reranker-8B

启动命令

vllm serve Qwen/Qwen3-Embedding-0.6B

本地接口测试

curl --location 'http://localhost:8000/v1/embeddings' \
--header 'Content-Type: application/json' \
--data '{"input": "Follow the white rabbit.","model": "Qwen/Qwen3-Embedding-0.6B","encoding_format": "float"}'

在这里插入图片描述

自封装本地embedding模型

class LocalEmbeddings(Embeddings):def __init__(self, api_url: str = "http://localhost:8000/v1/embeddings"):self.api_url = api_urldef embed_documents(self, texts: List[str]) -> List[List[float]]:payload = {"input": texts,"model": "Qwen/Qwen3-Embedding-0.6B",  # 替换为你实际使用的模型名"encoding_format": "float"}response = requests.post(self.api_url, json=payload)if response.status_code != 200:raise Exception(f"API request failed with status code {response.status_code}: {response.text}")result = [item["embedding"] for item in response.json()["data"]]return resultdef embed_query(self, text: str) -> List[float]:return self.embed_documents([text])[0]

Langchain实现

安装faiss(https://github.com/facebookresearch/faiss/blob/main/INSTALL.md)

conda install -c pytorch faiss-cpu=1.11.0

进行向量存储和检索

from langchain.embeddings.base import Embeddings
import requests
from typing import List
from langchain_community.document_loaders import TextLoader
from langchain_community.vectorstores import FAISS
from langchain_text_splitters import RecursiveCharacterTextSplitter# 初始化本地 embeddings
embeddings = LocalEmbeddings()# 示例文本
# texts = ["这是一个测试句子", "这是另一个测试句子"]
#
# # 使用 embeddings 构建向量数据库
# vectorstore = FAISS.from_texts(texts=texts, embedding=embeddings)# 加载本地文档,并进行切分
raw_documents = TextLoader('xxx.txt').load()
text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=0)
documents = text_splitter.split_documents(raw_documents)
print(len(documents))# 对切分后的文档进行提取特征和入库向量库
db = FAISS.from_documents(documents, embedding=embeddings)# 查询相似文本
query = "测试句子"
docs = db.similarity_search(query, 4)
print(docs)

在这里插入图片描述

langchain调用qwen文章参考:https://qwen.readthedocs.io/zh-cn/latest/framework/Langchain.html

Faiss实现

直接上代码

import faiss
from langchain.embeddings.base import Embeddings
import requests
from typing import Listdef read_and_split_file(filepath, chunk_size=500):with open(filepath, 'r', encoding='utf-8') as file:data = file.read()# Split the text into chunks of 500 characters.chunks = [data[i:i + chunk_size] for i in range(0, len(data), chunk_size)]return chunks# 初始化本地 embeddings
embeddings = LocalEmbeddings()index = faiss.index_factory(1024, "Flat")chunks = read_and_split_file('/Users/admin/Downloads/error.log')
print(len(chunks))
vectors = embeddings.embed_documents(chunks)
print(vectors)# 转成 numpy array,并确保是 float32 类型(Faiss 默认要求)
vectors_np = np.array(vectors).astype("float32")index.add(vectors_np)# 查询相似文本
query = "测试句子"
query_vector = embeddings.embed_query(query)
# 同样要转成 numpy array 并 reshape 成 (1, d)
query_vector_np = np.array([query_vector]).astype("float32")
D, I = index.search(query_vector_np, 4)
print("Top 4 最相似的向量索引:", I)
print("对应的距离:", D)

在这里插入图片描述

http://www.dtcms.com/wzjs/475484.html

相关文章:

  • 个人电影网站备案网站查询地址
  • 秦皇岛门户网汕头seo网络推广服务
  • 怎么开发一个网站重庆seo管理平台
  • 怎么让网站排名下降bt兔子磁力搜索引擎最新版
  • 怎么通过数据库做网站的登录数字营销软件
  • 服务器做视频网站吗哈尔滨网站优化
  • 网站开发需要数据库免费注册公司
  • 怎么免费建设个人网站百度词条官网入口
  • 企业加盟网站建设茶叶网络推广方案
  • 个人网站备案 服务内容怎么写万网域名交易
  • 手机版网站模板 免费苹果看国外新闻的app
  • 贵阳网站建设咨询电脑培训机构哪个好
  • 西安教育平台网站建设制作一个小型网站
  • 专业的网页设计和网站建设公司网络营销渠道有哪些
  • 给个网站你们知道的企业站seo案例分析
  • 瓦房店 网站建设公司网络推广方法
  • 用asp做网站有哪控件百度地图推广怎么做的
  • 安阳网站公司哪家好2024政治时政热点
  • 网站开发公司的发票莱阳seo外包
  • 武威网站建设做网站建设的公司
  • 网站做弹窗广告吗制作网站需要什么
  • 网站做推广页需要什么企业培训课程分类
  • 企业网站建设价格表小区推广最有效的方式
  • 在工商局网站做年报要交费吗互联网seo是什么意思
  • 微信公众号设计网站湖南网站营销推广
  • 苏州聚尚网络科技有限公司天津seo外包
  • 网站分辨率做96是否会更好seo计费系统登录
  • wordpress搜索引擎优化抖音seo培训
  • 工信部网站备案注销网络销售是什么工作内容
  • wordpress国外全能主题推荐seo优化培训机构