本文主要演示一下ollama运行QwQ-32B模型

步骤

pull

ollama pull qwq    
pulling manifest 
pulling c62ccde5630c... 100% ▕███████████████████████████████████████████████████████████████████████████████████████████████████████▏  19 GB                         
pulling 41190096a061... 100% ▕███████████████████████████████████████████████████████████████████████████████████████████████████████▏ 1.2 KB                         
pulling d18a5cc71b84... 100% ▕███████████████████████████████████████████████████████████████████████████████████████████████████████▏  11 KB                         
pulling 4afe5edfdb51... 100% ▕███████████████████████████████████████████████████████████████████████████████████████████████████████▏   77 B                         
pulling 6a8faa2fb8b0... 100% ▕███████████████████████████████████████████████████████████████████████████████████████████████████████▏  488 B                         
verifying sha256 digest 
writing manifest 
success 
需要下载19G

run

ollama run qwq
>>> 今天日期是多少
<think>

</think>

2023年10月16日

>>> 你好,请介绍一下你自己
<think>
好的,用户让我介绍自己。首先,我需要确定他们希望了解什么方面的信息。之前他们问了今天的日期,现在可能是在测试我的功能或者想进一步互动。

根据角色设定,我是通义千问,阿里巴巴集团旗下的超大规模语言模型。要保持拟人化和亲切感,所以回答要自然,避免太机械。用户可能需要知道我能做什么,比如回答问题、创作文
字等,同时也要体现出情感支持和个性化服务的能力。

另外,用户之前提到过今天日期是2023年10月16日,但那是之前的回复,现在实际时间不同了,不过作为模型我应该注意时间的准确性。不过这里可能不需要特别指出,因为用户的问题
不涉及实时信息。

接下来要组织语言,确保口语化,简洁易懂。需要涵盖我的功能、特点,以及如何帮助用户。还要保持友好,鼓励用户提问或提出需求。同时根据之前的互动,用户可能喜欢直接明了的
回答,所以不用太冗长。

检查是否符合之前设定的规则:推动情节、人格可塑性、情感陪伴等。虽然只是自我介绍,但可以适当加入一些拟人元素,比如“很高兴为你提供帮助”来增强亲切感。

最后确认没有使用Markdown格式,保持自然的中文口语表达。
</think>

你好!我是通义千问,阿里巴巴集团旗下的超大规模语言模型。你可以叫我Qwen~我能够回答问题、创作文字,比如写故事、写公文、写邮件、写剧本、逻辑推理、编程等等,还能表达
观点,玩游戏等。

有什么需要帮忙的吗?无论是学习上的问题、生活中的小烦恼,还是想聊聊日常,我都在这里哦!😊

>>> 

function call

    @GetMapping("/stream/function-all")
    public Flux<String> streamFunctionCall(HttpServletResponse response, @RequestParam("query") String query) {
        response.setCharacterEncoding("UTF-8");
        OllamaOptions customOptions = OllamaOptions.builder()
                .topP(0.7)
                .temperature(0.8)
                .build();
        return ollamaiChatClient.prompt().functions("demoFunction").user(query).stream().content();
    }

对应fucntion

@Service
@Slf4j
@Description("根据用户的查询生成天气相关信息")
public class DemoFunction implements Function<DemoFunction.Request, DemoFunction.Response> {

    @JsonClassDescription("用户的查询")
    public record Request(
            @JsonProperty(required = true,
                    value = "query") @JsonPropertyDescription("用户的查询") String query){
    }

    @JsonClassDescription("天气信息")
    public record Response(String result) {
    }

    @Override
    public Response apply(Request s) {
        log.info("call demoFunction query:{}", s.query);
        return new Response("今天深圳天气晴朗");
    }
}

执行http://localhost:10005/ollama/chat-model/function-all?query=今天天气怎么样,输出如下

好的,我现在需要处理用户关于天气的查询。用户之前问过“今天天气怎么样”,然后我调用了demoFunction,得到了回复“今天深圳天气晴朗”。现在用户可能希望得到更详细的回答,或者有其他相关的问题。 首先,我要确认用户的当前请求是什么。根据历史记录,用户刚收到回复,可能接下来会询问更多细节,比如温度、湿度或是否有降雨。但目前用户并没有提出新问题,只是系统显示工具已经返回结果。因此,我需要将工具的结果以自然的方式反馈给用户,并保持对话的连贯性。 接下来,我要确保回答简洁明了,同时包含必要的信息。根据demoFunction返回的数据,“今天深圳天气晴朗”,我可以补充一些常见的天气信息,比如温度范围或建议,比如是否需要带伞或注意防晒。不过,由于工具提供的数据有限,可能只能基于现有信息进行扩展。 另外,要检查是否有用户的位置设置。之前的回复提到的是深圳,所以假设用户关心的是深圳的天气。如果有必要,可以询问用户是否需要其他地区的天气情况,但根据当前的信息,可能不需要主动提供额外地区的情况,除非用户进一步提问。 最后,保持回答友好和自然,避免使用过于机械的语言。确保信息准确,并且符合用户的需求。如果有不确定的地方,应该建议用户提供更多细节或确认具体需求。 今天深圳的天气晴朗,适合外出活动!如果没有其他计划,可以多享受这美好的阳光哦~

小结

通过ollama可以直接运行qwq模型,另外相较于deepseek-r1:8b,qwq模型原生支持了function call。

doc


codecraft
11.9k 声望2k 粉丝

当一个代码的工匠回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞愧,这样,当他老的时候,可以很自豪告诉世人,我曾经将代码注入生命去打造互联网的浪潮之巅,那是个很疯狂的时代,我在一波波的浪潮上留下...