Skip to main content

openai-simple-embeddings

基于OPENAI兼容API接口的embeddings服务封装,以解决langchain_community.vectorstores在使用bge-m3/bge-reranker-v2-m3等模型提供的OPENAI兼容API接口服务时遇到的兼容性问题。

安装

pip install openai-simple-embeddings

使用

配置变量设置

# OPENAI兼容API服务,可以xinference提供
# 使用OPENAI_EMBEDDINGS_BASE_URL或EMBEDDINGS_BASE_URL设置独立服务地址
export OPENAI_EMBEDDINGS_BASE_URL="http://localhost/v1"
# OPENAI兼容API服务密钥,一般以sk-开头,共16位长
# 使用OPENAI_EMBEDDINGS_API_KEY或EMBEDDINGS_API_KEY设置独立服务密码
export OPENAI_EMBEDDINGS_API_KEY=""
# 默认的文本向量化模型
export OPENAI_EMBEDDINGS_MODEL="bge-m3"
# 向量数据库(以redis-stack为例)
export REDIS_STACK_URL="redis://localhost:6379/0"
# 字符串长度控制
export OPENAI_EMBEDDINGS_MAX_SIZE=1024

获取文本向量

代码

from openai_simple_embeddings.base import get_text_embeddings

r1 = get_text_embeddings("hello")
print(r1)

输出

[-0.032024841755628586, 0.023251207545399666, ..., -0.037223849445581436, 0.05963246524333954]

集成到向量数据库客户端

代码

from openai_simple_embeddings.langchain_embeddings import OpenAISimpleEmbeddings
from langchain_community.vectorstores.redis import Redis as LangchainRedisVectorStore
import python_environment_settings

REDIS_STACK_URL = python_environment_settings.get("REDIS_STACK_URL")
index_name = "kb:test"
embeddings = OpenAISimpleEmbeddings()
lrvs = LangchainRedisVectorStore(
    redis_url=REDIS_STACK_URL,
    index_name=index_name,
    key_prefix=index_name,
    embedding=embeddings,
)
uids = lrvs.add_texts(["hello"])
print(uids)

输出

['kb:test:984af7f2ffea4d49952af82dd992c8f8']

关于字符串长度控制

  • 模型本身一般没有字符串长度控制。
  • 但过长的字符串会导入模型占用内存的增长。
  • 默认将字符串长度控制在:1024字。
  • 通过OPENAI_EMBEDDINGS_MAX_SIZE设置默认最大字符串长度。
  • 也可以在函数调用中指定最大字符串长度。
  • 注意:所有超过最大长度的字符串将被截断。

版本记录

v0.1.0

  • 版本首发。

v0.1.1

  • 允许embeddings模型使用独立的服务地址及密码。

v0.1.2

  • 默认embeddings模型使用独立的服务地址及密码。

Release files for openai-simple-embeddings 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openai-simple-embeddings 0.1.2
File Size Uploaded
openai_simple_embeddings-0.1.2.tar.gz 8.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for openai-simple-embeddings 0.1.2
File Interpreter ABI Platform
openai_simple_embeddings-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 18.5 kB

Release files / openai_simple_embeddings-0.1.2.tar.gz

Download URL openai_simple_embeddings-0.1.2.tar.gz
Size 8.8 kB
Tags Source
SHA-256 checksum
How to use checksums
f12da5ce27fb250312914577574a2b4934434fe50c0e664bbcaa6cf52121d932
BLAKE2b-256 checksum
How to use checksums
a0fc52ef9f90def82055931036fd6795ebbb51314859072688c4b189d91b74f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.9

Release files / openai_simple_embeddings-0.1.2-py3-none-any.whl

Download URL openai_simple_embeddings-0.1.2-py3-none-any.whl
Size 9.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4dd7610450f4fb2a13424ec5a37fbc121b3edca7bdeaaa51cbd834e0bf556867
BLAKE2b-256 checksum
How to use checksums
35c746440372ed56b0e76c3298014ac87fc945734405a385d54f327d1399f9ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.9

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page