Fix vector retrieval and enhance LLM vacancy ranking
This commit is contained in:
parent
08d6cddb67
commit
cd1bb90167
@ -106,15 +106,15 @@ def add_vectors(collection_name: str, _id: int, features: dict, payload: dict):
|
||||
|
||||
|
||||
def search_similarities(query_filter: Filter, cv_id: int):
|
||||
vectors = client.retrieve(
|
||||
cv = client.retrieve(
|
||||
collection_name="cvs",
|
||||
ids=[cv_id],
|
||||
with_vectors=True,
|
||||
)[0].vector
|
||||
)[0]
|
||||
|
||||
max_similarities = {}
|
||||
vacancies_content = {}
|
||||
for name, vec in vectors.items():
|
||||
for name, vec in cv.vector.items():
|
||||
if any(v != 0 for v in vec):
|
||||
results = client.query_points(
|
||||
collection_name="vacancies",
|
||||
@ -140,11 +140,15 @@ def search_similarities(query_filter: Filter, cv_id: int):
|
||||
total = sum(feature_sims[feature] * weights.get(feature, 1) for feature in feature_sims)
|
||||
scored.append({"id": vid, "score": total, "content": vacancies_content[vid]["content"], "link": vacancies_content[vid]["link"]})
|
||||
|
||||
scored.sort(key=lambda x: x["score"], reverse=True)
|
||||
|
||||
prompt = f"""
|
||||
Среди вакансий ниже выбери одну наиболее релевантную и выведи ее индекс.
|
||||
Резюме: {cv.payload['content']}
|
||||
|
||||
Среди вакансий ниже выбери одну наиболее релевантную и выведи ее индекс(от 0 до 9).
|
||||
Если среди вакансий нет подходящих, то верни -1.
|
||||
В ответе выведи только число.
|
||||
{scored}
|
||||
{scored[:10]}
|
||||
"""
|
||||
openai_client = ChatOpenAI(model_name="gpt-5-mini", reasoning_effort="minimal", temperature=0, seed=42, top_p=1)
|
||||
response = openai_client.invoke(prompt)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user