MCPcopy Create free account
hub / github.com/OpenRaiser/PaperFlow / _resize

Function _resize

paperflow/providers/embedding.py:30–48  ·  view source on GitHub ↗
(vector: List[float], target_dim: int)

Source from the content-addressed store, hash-verified

28
29
30def _resize(vector: List[float], target_dim: int) -> List[float]:
31 if not vector:
32 return [0.0] * target_dim
33 if len(vector) == target_dim:
34 return vector
35 if len(vector) < target_dim:
36 return vector + [0.0] * (target_dim - len(vector))
37
38 bucket = len(vector) / target_dim
39 out: List[float] = []
40 for index in range(target_dim):
41 start = int(index * bucket)
42 end = int((index + 1) * bucket) or start + 1
43 segment = vector[start:end]
44 out.append(sum(segment) / len(segment))
45 norm = sum(value * value for value in out) ** 0.5
46 if norm > 0:
47 out = [value / norm for value in out]
48 return out
49
50
51class OpenAIEmbedding:

Callers 8

embed_batchMethod · 0.85
embedMethod · 0.85
embed_batchMethod · 0.85
embedMethod · 0.85

Calls

no outgoing calls