Function calling support of openai style api for Qwen1.5 and Qwen2 model#662
Function calling support of openai style api for Qwen1.5 and Qwen2 model#662Stephen-SMJ wants to merge 1 commit intoQwenLM:mainfrom
Conversation
Stephen-SMJ
left a comment
There was a problem hiding this comment.
In line 471:
response, _ = model.chat(
tokenizer,
query,
history=history,
system=system,
stop_words_ids=stop_words_ids,
**gen_kwargs,
)
The chat interface supports function calling now.
| from starlette.responses import Response | ||
| from transformers import AutoModelForCausalLM, AutoTokenizer, Qwen2ForCausalLM, Qwen2Tokenizer | ||
| from transformers.generation import GenerationConfig | ||
| from qwen2chat import Qwen2ForChatLM |
There was a problem hiding this comment.
In line 471:
response, _ = model.chat(
tokenizer,
query,
history=history,
system=system,
stop_words_ids=stop_words_ids,
**gen_kwargs,
)
The chat interface supports function calling now.
|
qwen2运行报错: |
应该是你json file的问题,你可以把json file发出来我有空看看。 |
|
deploy by vllm |
The version of openai is different. You can try the older function calling method, like: |
tools 多个agent函数需要怎么修改呢 只修改下面这里还是报错:openai.BadRequestError: Error code: 400 - {'object': 'error', 'message': "[{'type': 'extra_forbidden', 'loc': ('body', 'function_call'), 'msg': 'Extra inputs are not permitted', 'input': 'auto'}, {'type': 'extra_forbidden', 'loc': ('body', 'functions'), 'msg': 'Extra inputs are not permitted', 'input': [{'type': 'function', 'function': {'name': 'get_weather', 'description': '获取某个地点的天气,用户应首先提供一个地点', 'parameters': {'type': 'object', 'properties': {'location': {'type': 'string', 'description': '城市,例如:北京'}}, 'required': ['location']}}}, {'type': 'function', 'function': {'name': 'get_time', 'description': '获取当前时间,给一个地方点', 'parameters': {'type': 'object', 'properties': {'location': {'type': 'string', 'description': '城市,例如:上海'}}, 'required': ['location']}}}]}]", 'type': 'BadRequestError', 'param': None, 'code': 400} |
|
tools改成下面这样还是报错 |
Hi everyone. This is my implementation of function calling in the Openai-style API of the Qwen1.5/Qwen2 model.
The question I mentioned in #252. Since many people want the code, I share it today.
Note that some details may not be perfect, but you can continue to refine them.