Skip to content

Commit 8e807c1

Browse files
authored
example(code): collect start and end (#673)
1 parent c4c0ba7 commit 8e807c1

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

examples/code_embedding/main.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ def code_embedding_flow(
6868
code=chunk["text"],
6969
embedding=chunk["embedding"],
7070
start=chunk["start"],
71+
end=chunk["end"],
7172
)
7273

7374
code_embeddings.export(
@@ -96,13 +97,19 @@ def search(pool: ConnectionPool, query: str, top_k: int = 5) -> list[dict[str, A
9697
with conn.cursor() as cur:
9798
cur.execute(
9899
f"""
99-
SELECT filename, code, embedding <=> %s AS distance
100+
SELECT filename, code, embedding <=> %s AS distance, start, "end"
100101
FROM {table_name} ORDER BY distance LIMIT %s
101102
""",
102103
(query_vector, top_k),
103104
)
104105
return [
105-
{"filename": row[0], "code": row[1], "score": 1.0 - row[2]}
106+
{
107+
"filename": row[0],
108+
"code": row[1],
109+
"score": 1.0 - row[2],
110+
"start": row[3],
111+
"end": row[4],
112+
}
106113
for row in cur.fetchall()
107114
]
108115

@@ -123,7 +130,9 @@ def _main() -> None:
123130
results = search(pool, query)
124131
print("\nSearch results:")
125132
for result in results:
126-
print(f"[{result['score']:.3f}] {result['filename']}")
133+
print(
134+
f"[{result['score']:.3f}] {result['filename']} (L{result['start']['line']}-L{result['end']['line']})"
135+
)
127136
print(f" {result['code']}")
128137
print("---")
129138
print()

examples/code_embedding/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name = "code-embedding"
33
version = "0.1.0"
44
description = "Simple example for cocoindex: build embedding index based on source code."
55
requires-python = ">=3.11"
6-
dependencies = ["cocoindex>=0.1.52", "python-dotenv>=1.0.1"]
6+
dependencies = ["cocoindex>=0.1.56", "python-dotenv>=1.0.1"]
77

88
[tool.setuptools]
99
packages = []

0 commit comments

Comments
 (0)