main
py 68 lines 2.29 KB
Raw
1 # SPDX-License-Identifier: Apache-2.0
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3 """Example online usage of Score API.
4
5 Run `vllm serve <model> --runner pooling` to start up the server in vLLM.
6 """
7
8 import argparse
9 import pprint
10
11 import requests
12
13
14 def post_http_request(prompt: dict, api_url: str) -> requests.Response:
15 headers = {"User-Agent": "Test Client"}
16 response = requests.post(api_url, headers=headers, json=prompt)
17 return response
18
19
20 def parse_args():
21 parser = argparse.ArgumentParser()
22 parser.add_argument("--host", type=str, default="localhost")
23 parser.add_argument("--port", type=int, default=8000)
24 parser.add_argument("--model", type=str, default="BAAI/bge-reranker-v2-m3")
25 return parser.parse_args()
26
27
28 def main(args):
29 api_url = f"http://{args.host}:{args.port}/score"
30 model_name = args.model
31
32 queries = "What is the capital of Brazil?"
33 documents = "The capital of Brazil is Brasilia."
34 prompt = {"model": model_name, "queries": queries, "documents": documents}
35 score_response = post_http_request(prompt=prompt, api_url=api_url)
36 print("\nPrompt when queries and documents are both strings:")
37 pprint.pprint(prompt)
38 print("\nScore Response:")
39 pprint.pprint(score_response.json())
40
41 queries = "What is the capital of France?"
42 documents = [
43 "The capital of Brazil is Brasilia.",
44 "The capital of France is Paris.",
45 ]
46 prompt = {"model": model_name, "queries": queries, "documents": documents}
47 score_response = post_http_request(prompt=prompt, api_url=api_url)
48 print("\nPrompt when queries is string and documents is a list:")
49 pprint.pprint(prompt)
50 print("\nScore Response:")
51 pprint.pprint(score_response.json())
52
53 queries = ["What is the capital of Brazil?", "What is the capital of France?"]
54 documents = [
55 "The capital of Brazil is Brasilia.",
56 "The capital of France is Paris.",
57 ]
58 prompt = {"model": model_name, "queries": queries, "documents": documents}
59 score_response = post_http_request(prompt=prompt, api_url=api_url)
60 print("\nPrompt when queries and documents are both lists:")
61 pprint.pprint(prompt)
62 print("\nScore Response:")
63 pprint.pprint(score_response.json())
64
65
66 if __name__ == "__main__":
67 args = parse_args()
68 main(args)