【保姆级教程】调用openai-api生成文本并用orjson转成特定格式

1.API调用

2.prompt书写

3.生成格式转写

1.API调用

1.1获取api

可从openai官网申请获取或🍑宝购买

也可用azure openai(貌似仅限企业) 

我是用的azure,下面以azure进行讲解

主页搜索openai,找你们公司的服务 

点进去 

找到密钥(key)和终结点(end point)

从这里进入openai studio 

找到部署名称(deployment name) 

1.2写例子,试试api可否正常调用

pip install openai

pip install os

python3.7及以上版本

#Note: The openai-python library support for Azure OpenAI is in preview.
import os
import openai
openai.api_type = "azure"
openai.api_base = os.getenv("AZURE_OPENAI_ENDPOINT") #替换成终结点
openai.api_version = "2023-05-15"
openai.api_key = os.getenv("AZURE_OPENAI_KEY")#替换成你的key

response = openai.ChatCompletion.create(
    engine="gpt-35-turbo", # 替换成你们公司的deployment name
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
        {"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
        {"role": "user", "content": "Do other Azure AI services support this too?"}
    ]
)

print(response)
print(response['choices'][0]['message']['content'])

如果上面OK,那就能调用API了,开始下一步

2.prompt书写

2.1分清system和user

"role": "system"

数组的开头包含系统角色(也称为系统消息)。 此消息提供模型的初始说明。 可以在系统角色中提供各种信息,包括:

  • 助手的简要说明
  • 助手的个性特征
  • 你希望助手遵循的指令或规则
  • 模型所需的数据或信息,例如 FAQ 中的相关问题

你可以为用例自定义系统角色,也可以仅包含基本说明。 系统角色/消息是可选的,但建议至少包含一条基本说明,以获得最佳结果。 

"role": "user"

在系统角色之后,可以在用户助手之间加入一系列消息。

 {"role": "user", "content": "What is thermodynamics?"}

若要触发模型回复,在用户消息的末尾应提示该轮到助手回复了。 还可以在用户和助手之间加入一系列样本消息,以此进行少样本学习。

2.2例子: 

{"role": "system", "content": "Assistant is an intelligent chatbot designed to help users answer their tax related questions.
Instructions: 
- Only answer questions related to taxes. 
- If you're unsure of an answer, you can say "I don't know" or "I'm not sure" and recommend users go to the IRS website for more information. "},
{"role": "user", "content": "When are my taxes due?"} 

根据需要进行书写。推荐课程提示工程指南 | Prompt Engineering Guide

3.生成格式转写

推荐orjson。

orjson是一个JSON库,它可以快速准确地完成Python对象和JSON格式的相互转换,相较于Python原生的JSON库和其他第三方JSON库,orjson的功能更加丰富、效率更高。 

特点:

  • 可以将datetime、date和time实例序列化为RFC 3339格式,例如:"2022-06-12T00:00:00+00:00"
  • 序列化numpy.ndarray实例的速度比其他库快4-12倍,但使用的内存更少,约为其他库的1/3左右
  • 输出速度是标准库的10到20倍
  • 序列化的结果是bytes类型,而不是str
  • 序列化str时,不会将unicode转义为ASCII
  • 序列化float的速度是其他库的10倍,反序列化的速度是其他库的两倍
  • 可以直接序列化str、int、list和dict的子类
  • 不提供load( )和dump( )方法,在原生JSON库中,load( )方法可以把json格式的文件转换成python对象
  • orjson支持3.7-3.10所有版本64位的Python,注意32位的 Python 无法使用orjson!

orjson:功能丰富的高性能 Python JSON 库 - 知乎【导语】:orjson是一个JSON库,它可以快速准确地完成Python对象和JSON格式的相互转换,相较于Python原生的JSON库和其他第三方JSON库,orjson的功能更加丰富、效率更高。 简介首先我们先来了解下orjson的优缺点: …icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/535877643

这个写的全 

当涉及到 Vue DHTMLX-Gantt 导出 Excel 的保姆完整教程时,以下是一步一步的指南: 1. 确保您的项目中已经安装了 Vue 和 DHTMLX-Gantt。如果尚未安装,请使用以下命令进行安装: ```bash npm install vue dhtmlx-gantt ``` 2. 在您的 Vue 组件中引入所需的库和样式: ```javascript import 'dhtmlx-gantt'; import 'dhtmlx-gantt/codebase/dhtmlxgantt.css'; ``` 3. 创建一个 Vue 组件,并在模板中添加一个 Gantt 图表和一个按钮: ```html <template> <div ref="ganttContainer" style="width: 100%; height: 600px;"></div> <button @click="exportData">导出 Excel</button> </template> <script> import * as XLSX from 'xlsx'; import FileSaver from 'file-saver'; export default { mounted() { const ganttContainer = this.$refs.ganttContainer; gantt.init(ganttContainer); // 设置 Gantt 图表的配置和数据 // 示例数据 const tasks = [ { id: 1, text: '任务1', start_date: '2022-01-01', duration: 5, progress: 0.5 }, { id: 2, text: '任务2', start_date: '2022-01-06', duration: 4, progress: 0.2 }, // 其他任务... ]; gantt.parse({ data: tasks }); }, methods: { exportData() { const gantt = this.$refs.ganttContainer.$gantt; const tasks = gantt.getDatastore('task').getItems(); // 将任务数据换为 Excel 数据格式 const data = tasks.map((task) => { return { id: task.id, text: task.text, start_date: task.start_date, duration: task.duration, progress: task.progress, }; }); // 创建 Excel 文件 const worksheet = XLSX.utils.json_to_sheet(data); const workbook = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(workbook, worksheet, 'Gantt Data'); const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' }); const excelData = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }); // 下载 Excel 文件 FileSaver.saveAs(excelData, 'gantt_data.xlsx'); }, }, }; </script> <style> /* 可选的样式 */ </style> ``` 4. 在上述示例代码中,需要注意以下部分: - 在 `mounted` 钩子中,使用 `gantt.init(ganttContainer)` 初始化 Gantt 图表,并根据您的需求设置其配置和数据。 - `exportData` 方法用于将 Gantt 图表数据导出到 Excel。确保在 `exportData` 方法中的 `this.$refs.ganttContainer.$gantt` 是对 Gantt 图表组件的正确引用。 - 点击 "导出 Excel" 按钮时,将会生成一个名为 `gantt_data.xlsx` 的 Excel 文件,其中包含了 Gantt 图表的数据。 这就是使用 Vue DHTMLX-Gantt 导出 Excel 的保姆完整教程。希望对您有所帮助!如果您有任何其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值