鱼C论坛

 找回密码
 立即注册
查看: 254|回复: 8

[Python] 怎么把 options 参数写入openAI模式的大模型调用里?

[复制链接]
发表于 2024-5-17 07:31:05 | 显示全部楼层 |阅读模式
5鱼币
原始命令如下:

API

curl http://localhost:11434/api/generate -d '{
  "model": "llama3-gradient",
  "prompt": "Why is the sky blue?",
  "options": {
    "num_ctx": 256000
  }
}'


CLI

ollama run llama3-gradient
>>> /set parameter num_ctx 256000

我用下面的调用,但是不对
from openai import OpenAI

client = OpenAI(
    base_url = 'http://localhost:11434/v1',
    api_key='ollama', # required, but unused
   
)

def chat(question):
    response = client.chat.completions.create(
    # model="llama3:8b-instruct-q8_0",
    model="llama3-gradient",
    options=[{"num_ctx": 256000}],
   
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": question}
    ]
    )
    reply = response.choices[0].message.content
    return reply

question = """who are you?"""
print(chat(question))

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-5-17 18:41:59 | 显示全部楼层
在 OpenAI API 调用中设置 options 参数的方法有所不同,具体取决于库的实现方式。

鱼油的代码在定义 options 时是存在问题哦~

正确的用法应该是将 options 作为一个字典传递,而不是一个包含字典的列表。
from openai import OpenAI

client = OpenAI(
    base_url='http://localhost:11434/v1',
    api_key='ollama',  # required, but unused
)

def chat(question):
    response = client.chat.completions.create(
        model="llama3-gradient",
        options={"num_ctx": 256000},  # options should be a dictionary
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": question}
        ]
    )
    reply = response.choices[0].message.content
    return reply

question = """who are you?"""
print(chat(question))


注意:

  • 1. options 参数应该是一个字典而不是一个列表。
  • 2. 确保 num_ctx 参数被正确地包含在 options 字典中。

这样就可以写入 OpenAI 后调用 options 中的参数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2024-5-17 20:43:29 | 显示全部楼层
不二如是 发表于 2024-5-17 18:41
在 OpenAI API 调用中设置 options 参数的方法有所不同,具体取决于库的实现方式。

鱼油的代码在定义 op ...

TypeError: Completions.create() got an unexpected keyword argument 'options'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-5-17 22:52:21 | 显示全部楼层
llama 模型不应该用 openai 库吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2024-5-17 23:17:31 | 显示全部楼层
本帖最后由 blackantt 于 2024-5-17 23:19 编辑
isdkz 发表于 2024-5-17 22:52
llama 模型不应该用 openai 库吧


反正这个程序是能用的,关键就是怎么把  长文本参数在Python里传进去。 命令行下
ollama run llama3-gradient
>>> /set parameter num_ctx 256000
这么传。

curl下
curl http://localhost:11434/api/generate -d '{
  "model": "llama3-gradient",
  "prompt": "Why is the sky blue?",
  "options": {
    "num_ctx": 256000
  }
}'
Untitled.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-5-18 00:28:56 | 显示全部楼层
blackantt 发表于 2024-5-17 23:17
反正这个程序是能用的,关键就是怎么把  长文本参数在Python里传进去。 命令行下
ollama run llama3-g ...

满足 openai 的 api 调用规范就能用 openai 库,你这个搭建在 11434 端口的是什么项目?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2024-5-18 06:58:17 | 显示全部楼层
isdkz 发表于 2024-5-18 00:28
满足 openai 的 api 调用规范就能用 openai 库,你这个搭建在 11434 端口的是什么项目?

llama3-gradient
https://ollama.com/library/llama3-gradient
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-5-18 13:01:42 | 显示全部楼层
blackantt 发表于 2024-5-18 06:58
llama3-gradient
https://ollama.com/library/llama3-gradient

你可以试试 one-api 这个项目,可以将 ollama  api 转成 openai 的 api 规范
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2024-5-18 14:33:30 | 显示全部楼层
ok
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 11:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表