You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Docker容器将OpenWebUI连接到Aspire应用并调用

如何在Aspire中正确配置Docker容器连接并调用OpenWebUI?

1. 修正Aspire项目的容器配置

你的基础配置框架没问题,补充细节确保服务发现和依赖传递生效:

var openwebui = builder.AddContainer("openwebui", "ghcr.io/open-webui/open-webui", "latest")
    .WithHttpEndpoint(port: 3000, targetPort: 3000, name: "openwebui")
    // 若OpenWebUI需要连接LLM,添加对应环境变量
    .WithEnvironment("OPENAI_API_KEY", "your-actual-api-key");

// 直接传递容器服务引用给Blazor项目,Aspire会自动处理网络和配置
builder.AddProject<Projects.BlazorApp>("frontend")
    .WithReference(openwebui);

2. Blazor项目中使用Aspire配置的HttpClient

不要手动创建无配置的HttpClient,利用Aspire自动注册的命名客户端,避免硬写地址:

@page "/counter"
@rendermode InteractiveServer
@inject IHttpClientFactory HttpClientFactory

<PageTitle>Counter</PageTitle>

<h1>Counter</h1>

<p role="status">模型列表: @models</p>

<button class="btn btn-primary" @onclick="FetchModels">获取模型</button>

@code {
    private string models = "";

    private async Task FetchModels()
    {
        // 使用Aspire为openwebui服务生成的命名HttpClient
        using var http = HttpClientFactory.CreateClient("openwebui");
        try
        {
            var response = await http.GetAsync("/api/models");
            response.EnsureSuccessStatusCode(); // 主动校验请求状态
            models = await response.Content.ReadAsStringAsync();
        }
        catch (Exception ex)
        {
            models = $"请求失败: {ex.Message}";
        }
    }
}

3. 核心注意事项

  • Aspire自动服务发现:通过.WithReference(openwebui),Aspire会自动为Blazor项目配置openwebui命名HttpClient,其BaseAddress已预设为容器内部地址(http://openwebui:3000),调用时只需写相对路径。
  • 容器网络自动管理:Aspire会创建专属Docker网络,所有服务(容器、项目)默认加入该网络,容器名openwebui可直接被DNS解析,无需手动配置网络。
  • 容器启动等待:OpenWebUI启动需要初始化时间,可添加健康检查确保容器就绪后再接收请求:
    .WithHealthCheck(TcpHealthCheck.Create(3000)) // 用TCP检查替代HTTP(若OpenWebUI无健康端点)
    
  • LLM依赖配置:OpenWebUI本身只是界面,需连接后端LLM才能返回模型数据,务必通过.WithEnvironment配置对应的API密钥或LLM地址。

4. 问题排查步骤

  • 查看Aspire Dashboard(默认http://localhost:18888),确认OpenWebUI容器状态为"运行中"且健康。
  • 进入Blazor应用容器(若容器化运行),执行curl http://openwebui:3000/api/models,验证网络连通性。
  • 查看Aspire Dashboard中的服务日志,定位具体错误(如连接拒绝、404、权限问题等)。

内容的提问来源于stack exchange,提问作者Black Dream

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 18:32:43