Python: VolatileMemoryStore.get_nearest_match returns an un-awaited coroutine instead of a (MemoryRecord, score) tuple
I maintainer di solito rispondono entro 3 giorni
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 88/100
Direzione di ricerca
Inizia in python/semantic_kernel/memory/volatile_memory_store.py da VolatileMemoryStore.get_nearest_match, quindi confronta ChromaMemoryStore.get_nearest_match come riferimento funzionante. Aggiungi un test di regressione che copra la chiamata riprodotta e verifica che restituisca una singola tupla (MemoryRecord, score) senza lasciare una coroutine non attesa.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What happens
VolatileMemoryStore.get_nearest_match is declared async def, but it returns the result of calling self.get_nearest_matches(...) without awaiting it. get_nearest_matches is also async def, so await store.get_nearest_match(...) gives the caller a coroutine, not the tuple[MemoryRecord, float] the signature promises. The inner coroutine is never run and Python warns "coroutine ... was never awaited". Even if it were awaited, it would be a list of tuples, not a single tuple.
Where
python/semantic_kernel/memory/volatile_memory_store.py, get_nearest_match (current main):
) -> tuple[MemoryRecord, float]:
...
return self.get_nearest_matches(
collection_name=collection_name,
embedding=embedding,
limit=1,
min_relevance_score=min_relevance_score,
with_embeddings=with_embedding,
)
Reproduce
import asyncio, numpy as np
from semantic_kernel.memory.volatile_memory_store import VolatileMemoryStore
from semantic_kernel.memory.memory_record import MemoryRecord
async def main():
s = VolatileMemoryStore()
await s.create_collection("c")
await s.upsert("c", MemoryRecord.local_record("id1", "text", "desc", None, np.array([1.0, 0.0])))
m = await s.get_nearest_match("c", np.array([1.0, 0.0]))
print(type(m))
asyncio.run(main())
Output on semantic-kernel main (also 1.44.1): <class 'coroutine'>
Expected
await store.get_nearest_match(...) returns a (MemoryRecord, score) tuple, as MemoryStoreBase.get_nearest_match documents. ChromaMemoryStore.get_nearest_match already does this: results = await self.get_nearest_matches(...) followed by return results[0].
Notes
The class is deprecated, but it is still exported from semantic_kernel.memory. I can send a fix with a test.
- Lingua principale
- C#
- Stelle
- 28.6k
- Fork
- 4.8k
- Merge medio
- 2g 6h
- PR unite (30g)
- 18
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/semantic-kernel
-
.Net: gpt-image-1 is the default image model in the .NET OpenAI connector, and OpenAI shuts it down on October 23Forse già presa @nightcityblade l’ha presa 6 giorni fa. Aperta.NET triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
microsoft/semantic-kernel#14526 · 1 commento ·
I maintainer di solito rispondono entro 3 giorni
-
Python: VolatileMemoryStore.get_batch and get_nearest_matches ignore with_embeddings=False (deepcopy result is discarded)Forse già presa @VANDRANKI l’ha presa 7 giorni fa. Apertapython triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
microsoft/semantic-kernel#14522 ·
I maintainer di solito rispondono entro 3 giorni
-
.Net: Bug: BinaryContent does not decode the %xx escapes of a non-base64 data URIForse già presa @Laurianti l’ha presa 7 giorni fa. Aperta.NET triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
microsoft/semantic-kernel#14518 ·
I maintainer di solito rispondono entro 3 giorni
-
Python: FunctionCallContent.combine_arguments drops a streamed "{}" chunk, producing invalid JSON argumentsForse già presa @VANDRANKI l’ha presa 8 giorni fa. Apertapython triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
microsoft/semantic-kernel#14512 · 2 commenti ·
I maintainer di solito rispondono entro 3 giorni
-
.Net: Python: KernelJsonSchemaBuilder emits {"type": "object"} with no enum for typing.Literal parameters and fieldsForse già presa @VANDRANKI l’ha presa 8 giorni fa. Aperta.NET python triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
microsoft/semantic-kernel#14511 ·
I maintainer di solito rispondono entro 3 giorni
Tutte le issue di microsoft/semantic-kernel
Issue simili
-
[i18n] 安装实例完成后的成功提示未正确本地化Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
PCL-Community/PCL-CE#3658 ·
I maintainer di solito rispondono entro 1 giorno
-
Deploy & Patch-issues opprettes ikke: create-pnd-issues.yml har feilet hver uke siden 2025-09-08Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
Altinn/altinn-auth#4359 ·
I maintainer di solito rispondono entro 1 giorno
-
アプリ: チャット 優先: 中 提案
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
yksr-melt/Meltype#243 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
type/automation type/tech-debt
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
High-DPI fixes for release/1.3: editor toolbar icons and Color Picker layout (patch included)Apertano-stack-trace
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
I maintainer di solito rispondono entro 1 giorno