PS D:\CHAT_GLM\ChatGLM-6B-main> python -u api-test-02.py
INFO: Started server process [34932]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8001 (Press CTRL+C to quit)python -u api-test-02.py
问题描述
无法调用大模型进行多轮对话,本地大模型端需要配置请求处理及响应格式相关内容 可能存在bug
何处产生了问题?
文件:./llm_client/multi_rounds.py 在遵循教程尝试调用大模型接口的过程中,我注意到部署的本地模型需要按照设定好的请求格式进行接收处理,并以特定格式返回响应,我的本地模型未实现这部分功能,无法提供有意义的响应。 get_response方法在接收服务端数据响应内容后无返回值,导致ask_llm方法报错,这可能是一个bug
可能的get_response方法修正
```python def get_response(sentence, history, allow_function_call = True): if sentence: history.append({"role": "user", "content": sentence}) if sentence in fix_questions_dict: time.sleep(2) return True, parse_fix_question(sentence) params = dict(model="RoboWaiter") params['messages'] = role_system + list(history) if allow_function_call: params["functions"] = functions print(f"请求URL: {base_url}/v1/chat/completions") print(f"请求参数: {params}") response = requests.post(f"{base_url}/v1/chat/completions", json=params) if response.status_code == 200: try: decoded_line = response.json() print(f"响应内容: {decoded_line}") return True, decoded_line["response"] # <--------------------------------- 加入了返回值 except json.JSONDecodeError: logger.error(f"解析JSON失败,响应内容:{response.text}") else: logger.error(f"请求失败,状态码:{response.status_code}, 响应内容:{response.text}") # 根据需要处理错误或返回一个错误信息 return True, {"error": "Internal Server Error", "status_code": response.status_code} ```测试过程
我建立了一个本地空响应服务器,确定机器人端和服务端能够正常通信。
通信测试API
```python # -*- encoding: utf-8 -*- # @File : api-test-02.py # @Date : 2024/02/29 12:38:30 # @Author : Eliwii_Keeya from fastapi import FastAPI, Request import uvicorn import json import datetime app = FastAPI() @app.post("/v1/chat/completions") async def create_item(request: Request): # json_post_raw = await request.json() # json_post = json.dumps(json_post_raw) # history = json_post_raw["messages"] response_template = { "choices": [ {"message": {"role": "assistant", "content": "这是一条助手的消息"}} ] } now = datetime.datetime.now() time = now.strftime("%Y-%m-%d %H:%M:%S") answer = { "response": response_template, # "history": history.append(response_template), "status": 200, "time": time } log = "[" + time + "] " print(log) return answer if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=8001, workers=1) ```运行信息
基于当前项目代码自行开发大模型端接口对我而言是困难的,如果能够提供相关功能进行测试,将会给我很大的帮助。
需要什么样的帮助?
我希望能够了解大模型端的部分功能:
其他内容