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'][0]['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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值