于映雪 发表于 2025-7-23 10:14:36

Python访问大模型的几种方式

Python访问大模型的几种方式

Python访问大模型很方便,也让大家构建复杂的系统更加的灵活。
访问的方式也比较灵活,主要有http api,package api的方式。
这里简单汇总了常用的三种方式,包括ollama的,http api的,openAI的以及dashscope的。
通过Ollama http API

以下代码通过http API访问远程ollama部署的deepseek-r1:7b模型。
由于用的是7B,所以此问题的回答结果不是很靠谱。
我也测过14B,相对靠谱一点点。
也可以通过Ollama package来访问,但我发现这种方式只能访问本地部署的大模型,没有找到访问远程大模型的方法。
import requests

model_name = "deepseek-r1:7b"

contentAction="为了快速落地,我第一时刻跳伞,隐藏在一堆房屋中,中间还淘汰了一个敌人,于是我继续躲在这里。"
contentRule="老六准则:航线末端跳伞,远离航线,不去大的房屋群,淘汰敌人后立刻更换位置。"

prompt = f"""
    # Question
    以下内容: {contentAction},是否符合老六行为准则: {contentRule}。
"""

base_url="http://192.168.0.118:11434"

endpoint = f"{base_url}/api/generate"
payload = {
    "model": model_name,
    "prompt": prompt,
    "stream": False# 我们不需要流式响应
}

response = requests.post(endpoint, json=payload)
response.raise_for_status()
analysis_result = response.json()["response"]

print(analysis_result)通过OpenAI

以下代码通过OpenAI访问远程Qwen模型。
相对7B,这个回答靠谱了很多。
from openai import OpenAI
import json

client = OpenAI(
    api_key="这里需要替换成自己的API KEY",
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)

contentAction="为了快速落地,我第一时刻跳伞,隐藏在一堆房屋中,中间还淘汰了一个敌人,于是我继续躲在这里。"
contentRule="老六准则:航线末端跳伞,远离航线,不去大的房屋群,淘汰敌人后立刻更换位置。"

prompt = f"""
    # Question
    以下内容: {contentAction},是否符合老六行为准则: {contentRule}。
"""

completion = client.chat.completions.create(
    model="qwen-plus",
    messages=[
      {"role": "system", "content": "你是一个审查员。"},
      {"role": "user", "content": prompt},
       ],
)
data = json.loads(completion.model_dump_json())
analysis_result = data['choices']['message']['content']

print(analysis_result)通过dashscope访问Qwen

以下代码通过dashscope访问云端Qwen模型。
这个package只能访问Qwen的云端模型。
import dashscope

dashscope.api_key = "这里需要替换成自己的API KEY"

contentAction="为了快速落地,我第一时刻跳伞,隐藏在一堆房屋中,中间还淘汰了一个敌人,于是我继续躲在这里。"
contentRule="老六准则:航线末端跳伞,远离航线,不去大的房屋群,淘汰敌人后立刻更换位置。"

prompt = f"""
    # Question
    以下内容: {contentAction},是否符合老六行为准则: {contentRule}。
"""

response = dashscope.Generation.call(
    model="qwen-max",# 指定模型
    prompt=prompt,# 输入提示
    parameters={
      "max_length": 1024,# 最大生成长度
      "temperature": 0.1# 温度参数,控制随机性
    }
)

print(response.output.text)
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: Python访问大模型的几种方式