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

惠州网站小程序建设点网站备案查询接口

惠州网站小程序建设点,网站备案查询接口,义务网站建设,成都游戏软件开发公司有哪些LanceDB可以以多种方式运行 可以嵌入到现有后端(如您的 Django、Flask、Node.js 或 FastAPI 应用程序)中直接从如 Jupyter 笔记本等客户端应用程序中用于分析工作负载部署为远程无服务器数据库 安装 Python: pip install lancedbTypeScrip…

LanceDB可以以多种方式运行

  • 可以嵌入到现有后端(如您的 Django、Flask、Node.js 或 FastAPI 应用程序)中
  • 直接从如 Jupyter 笔记本等客户端应用程序中用于分析工作负载
  • 部署为远程无服务器数据库

安装

Python:

pip install lancedb

TypeScript:

npm install @lancedb/lancedb

连接数据库

Python:

同步

import lancedb
import pandas as pd
import pyarrow as pauri = "data/sample-lancedb"
db = lancedb.connect(uri)

异步

import lancedb
import pandas as pd
import pyarrow as pauri = "data/sample-lancedb"
db = await lancedb.connect_async(uri)

TypeScript:

import * as lancedb from "@lancedb/lancedb";
import * as arrow from "apache-arrow";const db = await lancedb.connect(databaseDir);

创建表

根据初始数据创建表

如果在创建表时有数据需要插入,那么可以同时创建表并将数据插入其中。数据的架构将被用作表的架构。

Python

如果表已经存在,LanceDB 默认会抛出一个错误。如果想覆盖该表,可以在 create_table 方法中传入 mode=“overwrite”。

同步

data = [{"vector": [3.1, 4.1], "item": "foo", "price": 10.0},{"vector": [5.9, 26.5], "item": "bar", "price": 20.0},
]tbl = db.create_table("my_table", data=data)

异步:

data = [{"vector": [3.1, 4.1], "item": "foo", "price": 10.0},{"vector": [5.9, 26.5], "item": "bar", "price": 20.0},
]tbl = await db.create_table("my_table_async", data=data)

还可以直接传入一个 pandas DataFrame:

df = pd.DataFrame([{"vector": [3.1, 4.1], "item": "foo", "price": 10.0},{"vector": [5.9, 26.5], "item": "bar", "price": 20.0},]
)tbl = await db.create_table("table_from_df_async", df)

pandas 是一个开源的 Python 数据分析和数据处理库,它提供了快速、灵活和表达力强的数据结构,旨在使“关系”或“标签”数据的处理工作变得既简单又直观。pandas 适合于许多不同类型的数据分析任务,比如数据清洗和准备、数据转换、以及数据分析与建模。

pandas 的核心数据结构是 DataFrame,它是一个二维的、大小可变的、有标签的数据结构,可以存储具有不同数据类型(整数、字符串、浮点数、Python 对象等)的列。DataFrame 既有行索引也有列索引,这使得数据的访问、筛选和操作变得非常灵活和方便。

pandas 还提供了大量的函数和方法来进行数据清洗、转换、聚合、连接等操作,以及进行时间序列分析和可视化等高级功能。此外,pandas 还支持与其他 Python 库(如 NumPy、SciPy、Matplotlib、Seaborn、Scikit-learn 等)的集成,使得数据分析的整个过程可以更加高效和无缝。

TypeScript:

const _tbl = await db.createTable("myTable",[{ vector: [3.1, 4.1], item: "foo", price: 10.0 },{ vector: [5.9, 26.5], item: "bar", price: 20.0 },],{ mode: "overwrite" },
);

在内部机制中,LanceDB 读取 Apache Arrow 数据,并使用 Lance 格式将其持久化保存到磁盘上。

在使用嵌入模型时,建议使用LanceDB的嵌入API,以便在后台自动为数据和查询创建向量表示。

创建空表

Python

同步

schema = pa.schema([pa.field("vector", pa.list_(pa.float32(), list_size=2))])
tbl = db.create_table("empty_table", schema=schema)

异步:

schema = pa.schema([pa.field("vector", pa.list_(pa.float32(), list_size=2))])
tbl = await db.create_table("empty_table_async", schema=schema)

TypeScript

const schema = new arrow.Schema([new arrow.Field("id", new arrow.Int32()),new arrow.Field("name", new arrow.Utf8()),
]);const emptyTbl = await db.createEmptyTable("empty_table", schema);

打开既存的表

Python

同步:

tbl = db.open_table("my_table")

异步

const _tbl = await db.openTable("myTable");

列出所有的表:

print(db.table_names())

TypeScript

const _tbl = await db.openTable("myTable");

列出所有的表:

const tableNames = await db.tableNames();

添加数据到表

Python

同步:

# Option 1: Add a list of dicts to a table
data = [{"vector": [1.3, 1.4], "item": "fizz", "price": 100.0},{"vector": [9.5, 56.2], "item": "buzz", "price": 200.0},
]
tbl.add(data)# Option 2: Add a pandas DataFrame to a table
df = pd.DataFrame(data)
tbl.add(data)

异步:

# Option 1: Add a list of dicts to a table
data = [{"vector": [1.3, 1.4], "item": "fizz", "price": 100.0},{"vector": [9.5, 56.2], "item": "buzz", "price": 200.0},
]
await tbl.add(data)# Option 2: Add a pandas DataFrame to a table
df = pd.DataFrame(data)
await tbl.add(data)

TypeScript

const data = [{ vector: [1.3, 1.4], item: "fizz", price: 100.0 },{ vector: [9.5, 56.2], item: "buzz", price: 200.0 },
];
await tbl.add(data);

搜索最近邻

Python

同步:

tbl.search([100, 100]).limit(2).to_pandas()

异步:

await tbl.vector_search([100, 100]).limit(2).to_pandas()

TypeScript:

const res = await tbl.search([100, 100]).limit(2).toArray();

默认情况下,LanceDB会对数据集进行暴力扫描以找到K个最近邻(KNN)。对于包含超过50,000个向量的表格,建议创建一个近似最近邻(ANN)索引以加快搜索速度。LanceDB允许您按如下方式在表格上创建ANN索引:

Python 同步:

tbl.create_index(num_sub_vectors=1)

Python 异步:

await tbl.create_index("vector")

TypeScript

await tbl.createIndex("vector");

为什么需要手动创建索引?

LanceDB不会自动创建近似最近邻(ANN)索引,原因有两个。首先,它旨在通过基于磁盘的索引实现极快的检索速度,而创建这样的索引可能涉及复杂的预处理和资源分配。其次,数据和查询的工作负载可能非常多样化,因此不存在适用于所有情况的统一索引配置。LanceDB提供了许多参数,以便用户能够微调索引的大小、查询延迟和准确性。

从表删除行

Python

同步:

tbl.delete('item = "fizz"')

异步:

await tbl.delete('item = "fizz"')

TypeScript

await tbl.delete('item = "fizz"');

删除谓词是一个SQL表达式,它支持在搜索中的where()子句(在Rust中为only_if())所使用的相同表达式。这些表达式可以根据需要简单或复杂。

删除表

Python

同步

db.drop_table("my_table")

异步

await db.drop_table("my_table_async")

TypeScript

await db.dropTable("myTable");

使用嵌入式API

在使用嵌入模型时,可以利用嵌入API。该API会在数据摄入和查询时自动对数据进行向量化处理,并且与流行的嵌入模型(如OpenAI、Hugging Face、Sentence Transformers、CLIP等)内置了集成功能。

Embedding API指的是一种用于处理嵌入(Embedding)操作的应用程序编程接口(API)。嵌入通常指的是将文本、图像或其他类型的数据转换为低维向量表示的过程,这些向量能够捕捉原始数据的某些关键特征或语义信息。

在文本处理领域,Embedding API常用于将文本数据转换为向量形式,以便进行后续的分析、分类、聚类、搜索等操作。这些向量通常是通过深度学习模型(如Word2Vec、BERT、GPT等)训练得到的,能够反映单词或句子之间的语义关系。

Python

这里目前仅有同步的API, 异步的尚未提供

from lancedb.pydantic import LanceModel, Vector
from lancedb.embeddings import get_registrydb = lancedb.connect("/tmp/db")
func = get_registry().get("openai").create(name="text-embedding-ada-002")class Words(LanceModel):text: str = func.SourceField()vector: Vector(func.ndims()) = func.VectorField()table = db.create_table("words", schema=Words, mode="overwrite")
table.add([{"text": "hello world"}, {"text": "goodbye world"}])query = "greetings"
actual = table.search(query).limit(1).to_pydantic(Words)[0]
print(actual.text)

TypeScript

import * as lancedb from "@lancedb/lancedb";
import "@lancedb/lancedb/embedding/openai";
import { LanceSchema, getRegistry, register } from "@lancedb/lancedb/embedding";
import { EmbeddingFunction } from "@lancedb/lancedb/embedding";
import { type Float, Float32, Utf8 } from "apache-arrow";
const db = await lancedb.connect(databaseDir);
const func = getRegistry().get("openai")?.create({ model: "text-embedding-ada-002" }) as EmbeddingFunction;const wordsSchema = LanceSchema({text: func.sourceField(new Utf8()),vector: func.vectorField(),
});
const tbl = await db.createEmptyTable("words", wordsSchema, {mode: "overwrite",
});
await tbl.add([{ text: "hello world" }, { text: "goodbye world" }]);const query = "greetings";
const actual = (await tbl.search(query).limit(1).toArray())[0];


文章转载自:

http://5BFXnIaC.xfcjs.cn
http://wFU199fL.xfcjs.cn
http://lNC3SGgf.xfcjs.cn
http://lqqa9PL5.xfcjs.cn
http://1LubPNWp.xfcjs.cn
http://65NXTjKW.xfcjs.cn
http://jz63s8WX.xfcjs.cn
http://x8UoYj6R.xfcjs.cn
http://3j3DvMu8.xfcjs.cn
http://Ejlq5Rc9.xfcjs.cn
http://AjQPy8Ck.xfcjs.cn
http://zFERXTXm.xfcjs.cn
http://RsRItSeG.xfcjs.cn
http://E2fcIQ7r.xfcjs.cn
http://6sQxWcRh.xfcjs.cn
http://a4Cb36NB.xfcjs.cn
http://tmmdnq2m.xfcjs.cn
http://P3d23z5A.xfcjs.cn
http://qJmPL5lu.xfcjs.cn
http://uiySGZr4.xfcjs.cn
http://m1dW8kMT.xfcjs.cn
http://u2B7YC4Q.xfcjs.cn
http://TcTMkILK.xfcjs.cn
http://qgnvEI9j.xfcjs.cn
http://n4Jhqs1l.xfcjs.cn
http://x12bjU1K.xfcjs.cn
http://J5toEXA7.xfcjs.cn
http://grcJu4eS.xfcjs.cn
http://r2tGxCJZ.xfcjs.cn
http://My0hc99P.xfcjs.cn
http://www.dtcms.com/wzjs/701469.html

相关文章:

  • 网站生成wap海外网络推广专员招聘
  • 广州那家做网站最好wordpress 与现有sso
  • 做1元夺宝网站挣钱吗网站彩票做号
  • 微 网站阿里网站建设费用
  • 做站群的网站怎么来景观设计学
  • 河南整合网络营销咨询太原seo推广优化
  • 2016织梦小说网站源码淘宝代运营公司十大排名
  • 国外免费建站电工证如何做的相关网站能查到
  • 科迪兔网站建设主题餐厅装修设计公司
  • 昆明网站建设一条龙重庆最好的网站建设
  • 大学生互助联盟网站建设需求分析说明表建设商业网站
  • 南沙手机网站建设安卓app开发框架
  • 湘潭网站建设口碑好磐石网络学习软件app
  • 网站打不开怎么解决未来做啥网站致富
  • access数据库创建网站百度收录正常网站流量下降
  • 高校门户网站建设问题国外的ui设计思想网站
  • 网站建设团队介绍服装网站技术解决方案
  • 用织梦怎么仿别人网站的js flash什么是整合营销并举例说明
  • 手机app开发网站制作二维码的思维导图
  • seo网站关键字优化wordpress定时功能
  • 如何做淘宝返利网站石家庄个人建站模板
  • 便捷网站建设价格网站建设公司做网站需要注意什么
  • 湖南省建设厅网站wordpress 图片 宽 高
  • 国际贸易官方网站知更鸟 wordpress 主题
  • 如何创建网站老鱼网做的好的大学生旅行有哪些网站
  • 2017招远网站建设福建省建设工程招投标信息网
  • 淄博市建设局网站如何制作企业官网
  • 可信网站认证免备案虚拟主机哪家好
  • 企业百度网站怎么做wordpress手机跳转
  • 电子商务网站开发视频网站建设是不是无形资产