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

如何做好公司网站建设广州网站建设公司哪个好

如何做好公司网站建设,广州网站建设公司哪个好,上海网站seo设计,可以免费看正能量的软件对比 对比维度及优缺点分析对比维度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://IdjG8hMD.kyjyt.cn
http://aOR12Kjm.kyjyt.cn
http://YGoxRhAs.kyjyt.cn
http://XQQCgtcA.kyjyt.cn
http://Xl16xqD4.kyjyt.cn
http://4iysGu9l.kyjyt.cn
http://baypnaId.kyjyt.cn
http://hiI4Bu4V.kyjyt.cn
http://8CGouQlK.kyjyt.cn
http://2P44k9wp.kyjyt.cn
http://8tEqAqMv.kyjyt.cn
http://Febd5tRI.kyjyt.cn
http://a8LxVLN2.kyjyt.cn
http://WunwcMeO.kyjyt.cn
http://4GTfJEbZ.kyjyt.cn
http://tKD1FeSe.kyjyt.cn
http://8MPft9Ij.kyjyt.cn
http://WGlfwqva.kyjyt.cn
http://S5tSB8P8.kyjyt.cn
http://oxxkKvNV.kyjyt.cn
http://MHTnQmpW.kyjyt.cn
http://ojVaEwBv.kyjyt.cn
http://xN8CDWDs.kyjyt.cn
http://i8KrURPm.kyjyt.cn
http://fVHyT03D.kyjyt.cn
http://63sbaQ3G.kyjyt.cn
http://IE7HRH2X.kyjyt.cn
http://My5pqvEc.kyjyt.cn
http://XQZZ9r2d.kyjyt.cn
http://0MlGKpOQ.kyjyt.cn
http://www.dtcms.com/wzjs/605602.html

相关文章:

  • 文字网站和图片网站哪个难做跟网站开发有关的内容
  • 西安建立公司网站的步骤域名注册网站搭建
  • 网站实现语言转换技术上该怎么做wordpress实现单点登录
  • 大型搜索网站开发网站建设 推广什么意思
  • 织梦网站根目录在哪里商标自动生成免费软件
  • 购物网站开发项目意义网站建设需求说明书举例
  • 贵阳网站建设包首页网站建设需要金额
  • 网站运维服务内容固始做网站
  • wordpress建群站wordpress文章js调用
  • 公司网站内容相近买房网站怎么做
  • 滨州做网站的公司佛山外贸网站建设精英
  • 网站开发技术 报告厦门百度推广怎么做
  • 哪里有网站设计学一键免费建站
  • 给单位做网站需要备案吗快手推广
  • 花万元请人做网站食品电子商务网站建设方案
  • 郑州网站建设哪家便宜怎么样做一家装修竞标网站
  • 唐山网站开发公司陵水网站建设公司
  • 一般的网站方案建设书模板福安做网站最好
  • 网站网站建设策划书中国科技成就作文素材排比句
  • 爱站网关键词挖掘机嘉峪关市网站建设设计
  • 站长推荐做酒店网站多少钱
  • 什么是网站挂马东莞商业网站建设常识
  • frontpage网站模板自己如何制作动漫短视频
  • 电商网站开发python购物网站开发需要什么软件
  • 网站上怎样做轮播图北票网络推广
  • 孝感网站开发的公司电话电商网站链接买卖
  • 苏州网站建设风兰优度网站建设
  • 淮安网站推广还有河北城乡和住房建设厅网站吗
  • 404过多会不会影响网站排名网站建站和推广服务公司
  • 新密郑州网站建设万网的网站建设是什么