【AI-agent】大模型的调用方式
本文介绍了两种大语言模型调用方式:使用Ollama进行本地调用和阿里云百炼API调用。Ollama作为开源工具支持本地运行Llama、Mistral等模型,提供简单CLI和API服务。安装后可通过命令行或Python代码调用模型。阿里云百炼则提供云端API服务,用户注册后获取API Key即可调用qwen-flash等模型。两种方式均附有详细操作步骤和代码示例,帮助开发者快速实现大模型集成。
目录
1 使用Ollama本地调用大模型
1.1 Ollama简介
Ollama 是一个开源的大语言模型运行和管理工具,它让用户能够轻松地在本地运行各种大语言模型。
主要功能:
- 本地模型运行:允许在本地计算机上运行各种开源大语言模型,如 Llama、Mistral、Gemma 等
- 简单易用:提供简单的命令行界面,一键下载和运行模型
- 模型管理:支持模型的下载、删除、版本管理
- API 服务:提供 REST API 接口,方便与应用程序集成
- 跨平台支持:支持 Windows、macOS 和 Linux
1.2 Ollama及大模型本地安装
1.2.1 Ollama下载
根据操作系统版本,在官网下载即可,官网:https://ollama.com/
下载安装完成后,启动服务即可
ollama serve

1.2.2 本地安装大模型
官网:https://ollama.com/ 选择合适的大模型安装(结合本地的实际配置),这里以qwen3为例:
1.安装并运行,可以直接在控制台与大模型对话交流
ollama run qwen3:4b

2.查看现有的大模型
ollama list

1.3 调用Ollama大模型
使用langchain-ollama库:https://python.langchain.com/docs/integrations/providers/ollama/
演示环境:python3.12
示例代码1:
from langchain_ollama import ChatOllama
if __name__ == "__main__":
llm = ChatOllama(model="qwen3:4b")
resp = llm.invoke("你好, 你是谁?")
print(resp)

示例代码2:
流式调用
from langchain_ollama import ChatOllama
if __name__ == "__main__":
# 创建一个ChatOllama实例
llm = ChatOllama(model="qwen3:4b")
# 调用llm.stream方法,传入一个字符串,返回一个生成器
resp = llm.stream("你好, 你是谁?")
# 遍历生成器,打印生成的内容
for chunk in resp:
# 打印生成的内容
print(chunk.content, end="")

2 阿里云百炼API调用大模型
阿里云百炼官网:https://bailian.console.aliyun.com/#/home
1.注册阿里云百炼账号,获取额度/充值,在模型广场选择需要的大语言模型
2.查看对应模型的api参考,这里以qwen3-flash为例,创建API key(该key注意保密)
3.进入业务空间对应的API key管理,给予相应的LLM模型授权
4.结合api参考调用百炼API,也可以将API key设置成环境变量,方便调用
from openai import OpenAI
import os
client = OpenAI(
# 如果没有配置环境变量,请用阿里云百炼API Key替换:api_key="sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
messages = [{"role": "user", "content": "你是谁"}]
completion = client.chat.completions.create(
model="qwen-flash", # 您可以按需更换为其它深度思考模型
messages=messages,
extra_body={"enable_thinking": True},
stream=True
)
is_answering = False # 是否进入回复阶段
print("\n" + "=" * 20 + "思考过程" + "=" * 20)
for chunk in completion:
delta = chunk.choices[0].delta
if hasattr(delta, "reasoning_content") and delta.reasoning_content is not None:
if not is_answering:
print(delta.reasoning_content, end="", flush=True)
if hasattr(delta, "content") and delta.content:
if not is_answering:
print("\n" + "=" * 20 + "完整回复" + "=" * 20)
is_answering = True
print(delta.content, end="", flush=True)
写在最后
本文已被专栏 AI agent实战开发 收录,欢迎 点击订阅专栏
以上便是本文的全部内容啦!创作不易,如果你有任何问题,欢迎私信,感谢您的支持!

更多推荐
所有评论(0)