使用讯飞的词嵌入api时候报错
WARNING - Request error: 11202, {‘header’: {‘code’: 11202, ‘message’: ‘licc failed’, ‘sid’: ‘emb000e121f@dx19376ee09dcb9e0882’}}
原因
大家都是图讯飞免费才用它的,而讯飞免费的api只能1秒钟调用两次,而大多数for循环的速度都会很快很快的调用。
解决方法——使用本地的词嵌入
示例代码
import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
from langchain_community.embeddings import HuggingFaceBgeEmbeddings
model_name = "BAAI/bge-large-en-v1.5"
model_kwargs = {'device': 'cpu'}#可能有些显卡,假设你把cpu换成cuda了会出大问题,不要问我怎么知道的 >_<
encode_kwargs = {'normalize_embeddings': True}
EMBEDDING_FUNCTION = HuggingFaceBgeEmbeddings(
model_name=model_name,
model_kwargs=model_kwargs,
encode_kwargs=encode_kwargs,
show_progress=True
)
input_text = "The meaning of life is 42"
(EMBEDDING_FUNCTION.embed_query(input_text))#这里是一个调用示例
建立好之后你就可以将EMBEDDING_FUNCTION作为词嵌入函数去使用了,如:
Chroma.from_documents(docs, EMBEDDING_FUNCTION, persist_directory=str(vector_db_path))