Spaces:
Sleeping
Sleeping
| import ollama | |
| class Reranker: | |
| def rerank(self, query, candidates, top_k=4): | |
| ### use llm for rerank | |
| scores = [] | |
| for candidate in candidates: | |
| prompt = f""" | |
| Question: {query} | |
| Context: {candidate} | |
| On a scale of 0-10, how relevant is this context to answering the question? | |
| Answer with ONLY a number. | |
| """ | |
| response = ollama.generate(model="qwen2:7b", prompt=prompt, options={"temperature": 0}) | |
| try: | |
| score = float(response["response"].strip()) | |
| except: | |
| score = 0.0 | |
| scores.append(score) | |
| # sort by score | |
| ranked = sorted(zip(candidates, scores), key=lambda x: x[1], reverse=True) | |
| return [cand for cand, _ in ranked[:top_k]] |