当我连接到anythingllm容器时,我能够通过命令: anythingllm@6de6c5255f33:~$ curl http://vllm-mixtral:5002/v1/completions -H "Content-Type: application/json" -d '{"model": "mistralai/Mixtral-8x7B-Instruct-v0.1", "prompt": "San Francisco is a", "max_tokens": 7,"temperature": 0}' {"id":"cmpl-0df1e0e95b4c46a78632936ba277e3ef","object":"text_completion","created":1714551853,"model":"mistralai/Mixtral-8x7B-Instruct-v0.1","choices":[{"index":0,"text":" city that is known for its steep","logprobs":null,"finish_reason":"length","stop_reason":null}],"usage":{"prompt_tokens":5,"total_tokens":12,"completion_tokens":7}}anythingllm@6de6c5255f33:~$ 检索vllm的模型。
9条答案
按热度按时间inn6fuwd1#
我能够使用vllm在任何LLM LLM设置中选择本地AI。
享受吧。
pinkon5k2#
感谢您的建议。我已经测试过了,但是失败了。我确认vllm示例运行正常,自1714112327以来创建。拥有者为vllm,根目录为mistralai/Mixtral-8x7B-Instruct-v0.1,父级为null,权限包括允许创建引擎、采样、记录概率、搜索索引、查看和微调等操作。组织为任意,组为空,不阻塞。
我已经在配置中放入了LocalAI和http://vllm-mistral:5002/v1。任何能够检索模型的人都可以使用它。但是当我尝试进行聊天时,我遇到了一个错误:无法响应消息。请求以状态码400失败。查看Anythingllm的日志,我得到了以下跟踪信息:
请帮助我解决这个问题。非常感谢。
Francois,来自法国
vh0rcniy3#
如果它能帮助您进行分析:
它似乎要求
https://vllm-mixtral.myserver.fr/v1/chat/completions
但是当我访问这个网址时,我得到了:
{"detail":"Method Not Allowed"}
这是vllm和anythingllm之间的API问题吗?
sg3maiej4#
该端点仅支持POST方法,不支持GET方法,这也是您直接访问URL时出现"method not allowed"的原因之一。
u0sqgete5#
我也有同样的问题,无论是本地AI还是通用OpenAI的集成。
vlm服务器回复如下:
ERROR
serving_chat.py:60] Error in applying chat template from request: Conversation roles must alternate user/assistant/user/assistant/...INFO:
"POST /v1/chat/completions HTTP/1.1" 400 Bad Request
7ivaypg96#
亲爱的大家,
我再次测试了一下,即使我已经通过Docker配置暴露了端口,仍然无法直接使用vllm。
你能分享一下你是怎么做的吗?
再次感谢
翻译结果:亲爱的大家,
我已经再次进行了测试,但是即使我已经通过Docker配置暴露了端口,仍然无法直接使用vllm。
请问你们是如何做到这一点的呢?
非常感谢!
ycggw6v27#
@flefevre,我再次尝试了两次,它确实可以工作。这可能是容器连接问题吗?我记得我使用curl来检查容器之间的连接。你能告诉我你的容器、主机和进程是如何对齐的吗?
对我来说,最简单的方法是在一个docker-compose.yml配置文件下启动vllm和AnythingLLM作为兄弟容器,并通过容器名称将AnythingLLM指向vllm。
另一种方法是在宿主机上运行vllm,然后通过docker启动AnythingLLM,并通过
host.docker.internal
指向vllm,但这是Docker Desktop的专有功能。qacovj5a8#
这两个似乎是两个不同的问题,一个与连接性有关,另一个与格式有关。
与请求格式相关的问题是,anything-llm可以访问vllm,但vllm会抛出一个“400 Bad request”错误。
ERROR
serving_chat.py:60] Error in applying chat template from request: Conversation roles must alternate user/assistant/user/assistant/...`关于原因的一些提示,请参阅vllm讨论Mixtral instruct doesn't accept system prompt
在anything-llm方面有修改模板的方法吗?
mlnl4t2r9#
亲爱的大家,
通常情况下,我已经简化了测试。
Docker配置
Docker验证
当我连接到anythingllm容器时,我能够通过命令:
anythingllm@6de6c5255f33:~$ curl http://vllm-mixtral:5002/v1/completions -H "Content-Type: application/json" -d '{"model": "mistralai/Mixtral-8x7B-Instruct-v0.1", "prompt": "San Francisco is a", "max_tokens": 7,"temperature": 0}' {"id":"cmpl-0df1e0e95b4c46a78632936ba277e3ef","object":"text_completion","created":1714551853,"model":"mistralai/Mixtral-8x7B-Instruct-v0.1","choices":[{"index":0,"text":" city that is known for its steep","logprobs":null,"finish_reason":"length","stop_reason":null}],"usage":{"prompt_tokens":5,"total_tokens":12,"completion_tokens":7}}anythingllm@6de6c5255f33:~$
检索vllm的模型。
Anythingllm Webui配置
我可以通过设置以下内容来配置默认LLM偏好:
Anythingllm Webui测试
当我创建一个工作区,打开一个新线程,并询问一些问题时,我每次都得到一个
Could not respond to message. Request failed with status code 400
当我查看Anythingllm日志时,我有以下跟踪信息:
httpVersionMajor: 1, httpVersionMinor: 1, httpVersion: '1.1', complete: true, rawHeaders: [Array], rawTrailers: [], joinDuplicateHeaders: undefined, aborted: false, upgrade: false, url: '', method: null, statusCode: 400, statusMessage: 'Bad Request', client: [Socket], _consuming: false, _dumped: false, req: [ClientRequest], responseUrl: 'http://vllm-mixtral:5002/v1/chat/completions', redirects: [], [Symbol(kCapture)]: false, [Symbol(kHeaders)]: [Object], [Symbol(kHeadersCount)]: 10, [Symbol(kTrailers)]: null, [Symbol(kTrailersCount)]: 0 } }, isAxiosError: true, toJSON: [Function: toJSON]
分析
我同意@alceausu的观点,问题似乎不是由于docker/vllm/anythingllm的配置错误。
它似乎更与特定模型的使用中的anythingllm和vllm之间的配置错误有关,就我的情况而言是mixtral8x7b。
一个解决方案可能是能够理解每个vllm/模型系统提示的具体性,正如@alceausu所提议的vllm-project/vllm#2112
或者也许可以使用类似于Litellm的模型代理,它将基于启发于openai的统一API封装模型交互。
我在此处创建了以下功能提案#1154 ,我认为这是一个好解决方案。
你同意吗?
如果是的话,我的票据可能已经无效了,因为Anythingllm与vllm兼容,但与由vllm提供的全部模型不兼容。
Mixtral8x7b确实是一个很好的模型。通过像Litellm这样的代理访问它将是完美的,确保Anythingllm的开发人员不必为每个模型调整他们的后端解决方案。
感谢您的专业知识。