Spaces:
Running
Running
import sys | |
from pathlib import Path | |
root_path = Path(__file__).parent.parent | |
sys.path.append(str(root_path)) | |
from configs import ONLINE_LLM_MODEL | |
from server.model_workers.base import * | |
from server.utils import get_model_worker_config, list_config_llm_models | |
from pprint import pprint | |
import pytest | |
workers = [] | |
for x in list_config_llm_models()["online"]: | |
if x in ONLINE_LLM_MODEL and x not in workers: | |
workers.append(x) | |
print(f"all workers to test: {workers}") | |
# workers = ["fangzhou-api"] | |
def test_chat(worker): | |
params = ApiChatParams( | |
messages = [ | |
{"role": "user", "content": "你是谁"}, | |
], | |
) | |
print(f"\nchat with {worker} \n") | |
if worker_class := get_model_worker_config(worker).get("worker_class"): | |
for x in worker_class().do_chat(params): | |
pprint(x) | |
assert isinstance(x, dict) | |
assert x["error_code"] == 0 | |
def test_embeddings(worker): | |
params = ApiEmbeddingsParams( | |
texts = [ | |
"LangChain-Chatchat (原 Langchain-ChatGLM): 基于 Langchain 与 ChatGLM 等大语言模型的本地知识库问答应用实现。", | |
"一种利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。", | |
] | |
) | |
if worker_class := get_model_worker_config(worker).get("worker_class"): | |
if worker_class.can_embedding(): | |
print(f"\embeddings with {worker} \n") | |
resp = worker_class().do_embeddings(params) | |
pprint(resp, depth=2) | |
assert resp["code"] == 200 | |
assert "data" in resp | |
embeddings = resp["data"] | |
assert isinstance(embeddings, list) and len(embeddings) > 0 | |
assert isinstance(embeddings[0], list) and len(embeddings[0]) > 0 | |
assert isinstance(embeddings[0][0], float) | |
print("向量长度:", len(embeddings[0])) | |
# @pytest.mark.parametrize("worker", workers) | |
# def test_completion(worker): | |
# params = ApiCompletionParams(prompt="五十六个民族") | |
# print(f"\completion with {worker} \n") | |
# worker_class = get_model_worker_config(worker)["worker_class"] | |
# resp = worker_class().do_completion(params) | |
# pprint(resp) | |