[全量] 初始化项目代码、配置、文档及Agent协同harness
This commit is contained in:
71
langchain-chat/tests/test_online_api.py
Normal file
71
langchain-chat/tests/test_online_api.py
Normal file
@@ -0,0 +1,71 @@
|
||||
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"]
|
||||
|
||||
|
||||
@pytest.mark.parametrize("worker", workers)
|
||||
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
|
||||
|
||||
|
||||
@pytest.mark.parametrize("worker", workers)
|
||||
def test_embeddings(worker):
|
||||
params = ApiEmbeddingsParams(
|
||||
texts = [
|
||||
"LangChain-Chatchat (原 Langchain-ChatGLM): 基于 Langchain 与 ChatGLM 等大语言模型的本地知识库问答应用实现。",
|
||||
"一种利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。",
|
||||
],
|
||||
worker_name=worker,
|
||||
)
|
||||
|
||||
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)
|
||||
Reference in New Issue
Block a user