Langchain-Chatchat

Форк
0
/
test_llm_api.py 
70 строк · 2.1 Кб
1
import requests
2
import json
3
import sys
4
from pathlib import Path
5

6
root_path = Path(__file__).parent.parent.parent
7
sys.path.append(str(root_path))
8
from configs.server_config import FSCHAT_MODEL_WORKERS
9
from server.utils import api_address, get_model_worker_config
10

11
from pprint import pprint
12
import random
13
from typing import List
14

15

16
def get_configured_models() -> List[str]:
17
    model_workers = list(FSCHAT_MODEL_WORKERS)
18
    if "default" in model_workers:
19
        model_workers.remove("default")
20
    return model_workers
21

22

23
api_base_url = api_address()
24

25

26
def get_running_models(api="/llm_model/list_models"):
27
    url = api_base_url + api
28
    r = requests.post(url)
29
    if r.status_code == 200:
30
        return r.json()["data"]
31
    return []
32

33

34
def test_running_models(api="/llm_model/list_running_models"):
35
    url = api_base_url + api
36
    r = requests.post(url)
37
    assert r.status_code == 200
38
    print("\n获取当前正在运行的模型列表:")
39
    pprint(r.json())
40
    assert isinstance(r.json()["data"], list)
41
    assert len(r.json()["data"]) > 0
42

43

44
# 不建议使用stop_model功能。按现在的实现,停止了就只能手动再启动
45
# def test_stop_model(api="/llm_model/stop"):
46
#     url = api_base_url + api
47
#     r = requests.post(url, json={""})
48

49

50
def test_change_model(api="/llm_model/change_model"):
51
    url = api_base_url + api
52

53
    running_models = get_running_models()
54
    assert len(running_models) > 0
55

56
    model_workers = get_configured_models()
57

58
    availabel_new_models = list(set(model_workers) - set(running_models))
59
    assert len(availabel_new_models) > 0
60
    print(availabel_new_models)
61

62
    local_models = [x for x in running_models if not get_model_worker_config(x).get("online_api")]
63
    model_name = random.choice(local_models)
64
    new_model_name = random.choice(availabel_new_models)
65
    print(f"\n尝试将模型从 {model_name} 切换到 {new_model_name}")
66
    r = requests.post(url, json={"model_name": model_name, "new_model_name": new_model_name})
67
    assert r.status_code == 200
68

69
    running_models = get_running_models()
70
    assert new_model_name in running_models
71

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.