Skip to content

无法使用本地模型,提示api地址404 #1019

Open

Description

@hanhaimitiu

Describe the bug:

Steps to reproduce:
1.使用llama.cpp部署向量模型到8080端口
2.添加自定义api
3.提示404

Attu version:
Attu v3.0.0-beta.6

Attu version:

Activity

  1. shanghaikid commented on Jun 26, 2026

    @shanghaikid
    Collaborator

    你好,这个看起来更像是 llama.cpp 暴露的 API 路径/格式没有和 Attu 对上,不是模型文件本身的格式问题。

    Attu 里自定义 embedding provider 会按 OpenAI-compatible embeddings API 调用:

    • Base URL 只填服务根地址,例如 http://host:8080
    • Attu 会自动请求 POST /v1/embeddings
    • 请求体类似:{"model":"...","input":"test"}
    • 返回格式需要包含 data[0].embedding

    llama.cpp 里有几个 embedding endpoint,其中 /embedding 和 /embeddings 不是 OpenAI-compatible;Attu 不能直接对接这两个格式。请先在 Attu 运行环境里验证这个接口是否可用:

    curl http://127.0.0.1:8080/v1/embeddings \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer no-key" \
      -d '{"model":"你的模型名","input":"test","encoding_format":"float"}'

    如果这里返回 404,但 /embedding 能返回结果,那就是 llama.cpp 当前服务没有暴露 OpenAI-compatible /v1/embeddings,需要调整 llama.cpp 的启动方式,例如使用专门的 embedding 模型并开启 embedding 模式:

    llama-server -m /path/to/embedding-model.gguf \
      --host 0.0.0.0 \
      --port 8080 \
      --embedding \
      --pooling mean \
      --alias your-model

    另外,如果 Attu 是 Docker 部署的,localhost:8080 指的是 Attu 容器内部,不是宿主机。可以尝试把 Attu 里的 Base URL 改成 http://host.docker.internal:8080,或使用容器网络里可访问的宿主机/服务地址。

    所以建议先确认:

    1. 在 Attu 所在环境访问 http://...:8080/v1/embeddings 是否不是 404;
    2. Attu 里 Base URL 不要带 /embedding 或 /v1/embeddings 后缀,只填根地址;
    3. llama.cpp 使用 embedding 模型,并开启 --embedding,pooling 不要是 none。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions