一、导入包

from openai import OpenAI

二、调用本地服务

作者使用的是Ollama部署的模型,所以使用的是Ollama默认地址"http://localhost:11434/v1"。值得注意的是api_key不能为空,否则会报错!

openai_api_key = "111"  # 可随意填写,本地服务不用验证身份,但是不能为空,为空会报错
openai_api_base = "http://localhost:11434/v1"

三、创建客户端

如果不设置 base_url,OpenAI客户端会默认连接官方API(https://api.openai.com/v1),需要付费和网络访问权限。设置了base_url会调用本地部署的大模型。

client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)

四、调用大模型生成回复

response = client.chat.completions.create(
    model="llama2:7b", 
    messages=[  
    {
        "role": "system",
        "content": "You will be provided with unstructured data, and your task is to parse it into CSV format."
    },
    {
        "role": "user",
        "content": "Explain who are you."
    }
    ],
    temperature=0.7,
    max_tokens=512,
    top_p=1
)
  • model用于指定模型名称,不记得模型名称的可以使用ollama list查询,如下图中红色框中的就是对应的模型名。

  • temperature用于控制生成文本的随机性,取值范围为0-2之间。取值为0表示输出确定性高,适合事实性回答(如问答任务);0.7表示平衡创造性和连贯性(适合大多数场景);1+表示更具冒险性,可能生成不连贯内容(适合创意写作)。

  • max_tokens用于限制生成内容的最大长度

  • top_p用于通过核采样(nucleus sampling)控制生成多样性

  • messages是一个消息列表,每条消息必须包含两个字段

{
    "role": "system" | "user" | "assistant",  # 消息角色
    "content": "..."                          # 消息内容
}

五、获取模型回答 

# 提取模型的回复内容
reply = response.choices[0].message.content
print(reply)

六、完整调用代码

from openai import OpenAI

# 设置 API 密钥和服务地址
openai_api_key = "111"
openai_api_base = "http://localhost:11434/v1"

# 创建客户端
client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)


response = client.chat.completions.create(
    model="llama2:7b", 
    messages=[  
    {
        "role": "system",
        "content": "You will be provided with unstructured data, and your task is to parse it into CSV format."
    },
    {
        "role": "user",
        "content": "Explain who are you."
    }
    ],
    temperature=0.7,
    max_tokens=512,
    top_p=1
)
# 提取模型的回复内容
reply = response.choices[0].message.content
print(reply)

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐