feat(avatar): show multi-file knowledge upload progress
This commit is contained in:
@@ -51,7 +51,7 @@ def _hash_embedding(texts, dim=EMBED_DIM):
|
||||
return vecs
|
||||
|
||||
|
||||
def embed(texts):
|
||||
def embed(texts, on_progress=None):
|
||||
"""返回 list[list[float]],与输入顺序一致。"""
|
||||
if not texts:
|
||||
return []
|
||||
@@ -64,6 +64,7 @@ def embed(texts):
|
||||
except ValueError:
|
||||
batch_size = 10
|
||||
embeddings = []
|
||||
total = len(texts)
|
||||
for start in range(0, len(texts), batch_size):
|
||||
batch = texts[start:start + batch_size]
|
||||
payload = json.dumps({"input": batch, "model": model}).encode("utf-8")
|
||||
@@ -84,8 +85,13 @@ def embed(texts):
|
||||
if len(items) != len(batch):
|
||||
raise ValueError("embedding response count does not match request")
|
||||
embeddings.extend(item["embedding"] for item in items)
|
||||
if on_progress:
|
||||
on_progress(len(embeddings), total)
|
||||
return embeddings
|
||||
return _hash_embedding(texts)
|
||||
vectors = _hash_embedding(texts)
|
||||
if on_progress:
|
||||
on_progress(len(vectors), len(texts))
|
||||
return vectors
|
||||
|
||||
|
||||
def cosine(a, b):
|
||||
|
||||
Reference in New Issue
Block a user