| # SPDX-License-Identifier: Apache-2.0 | |
| # SPDX-FileCopyrightText: Copyright contributors to the vLLM project | |
| from argparse import Namespace | |
| from vllm import LLM, EngineArgs | |
| from vllm.utils.argparse_utils import FlexibleArgumentParser | |
| def parse_args(): | |
| parser = FlexibleArgumentParser() | |
| parser = EngineArgs.add_cli_args(parser) | |
| # Set example specific arguments | |
| parser.set_defaults( | |
| model="BAAI/bge-reranker-v2-m3", | |
| runner="pooling", | |
| enforce_eager=True, | |
| ) | |
| return parser.parse_args() | |
| def main(args: Namespace): | |
| # Sample prompts. | |
| query = "What is the capital of France?" | |
| documents = [ | |
| "The capital of Brazil is Brasilia.", | |
| "The capital of France is Paris.", | |
| ] | |
| # Create an LLM. | |
| # You should pass runner="pooling" for cross-encoder models | |
| llm = LLM(**vars(args)) | |
| # Generate scores. The output is a list of ScoringRequestOutputs. | |
| outputs = llm.score(query, documents) | |
| # Print the outputs. | |
| print("\nGenerated Outputs:\n" + "-" * 60) | |
| for document, output in zip(documents, outputs): | |
| score = output.outputs.score | |
| print(f"Pair: {[query, document]!r} \nScore: {score}") | |
| print("-" * 60) | |
| if __name__ == "__main__": | |
| args = parse_args() | |
| main(args) | |