调用AI大模型API生成认知实习报告/生产实习报告/设计说明书手把手教程——以环境工程领域污水厂实习为例

摘要:本文以环境工程领域的污水处理厂实习为例,介绍了调用通义千问(qwen-plus)大模型API生成一份word版本的生产实习报告的过程,主要分为实现效果展示、调用大模型API生成实习报告的python代码、代码使用说明和代码设计思路四个部分。若仅需简单复用代码,可只阅读调用大模型API生成实习报告python代码、代码使用说明两个部分。本文提供python代码,可供使用。

0 实现效果展示

代码实现后将在与代码文件同一路径下生成一个word文档,在该文档中呈现了实习报告的主要内容,可用于后续修改。生成的word文档效果如图。

1 调用大模型API生成实习报告的python代码

from openai import OpenAI
import json
from tqdm import tqdm
from docx import Document
from docx.oxml.ns import qn
from docx.shared import Pt, RGBColor

question_list = ['污水厂实习的意义', '介绍福州洋里污水厂', '介绍污水处理中的AAO工艺', '介绍污水处理中的MBR工艺',\
                  '介绍污水处理中的反硝化深床滤池工艺', '介绍污水处理中的紫外消毒工艺', '污水厂生产实习体会']

# 问问题获取回答,问题应为str格式
def askget(question):
    # 1-通过api从通义千问获取回答
    client = OpenAI(
        # 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx",
        api_key="", 
        base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    )
    completion = client.chat.completions.create(
        model="qwen-plus", # 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
        messages=[
            {'role': 'system', 'content': 'You are a helpful assistant.'},
            {'role': 'user', 'content': question}],
        )
        
    print(completion.model_dump_json())


    # 2-将返回的json字符串转为字符串
    # 将JSON字符串转换为Python对象(通常是字典或列表)
    data = json.loads(completion.model_dump_json())

    # 提取键值对
    choices = data.get('choices')[0]

    # 提取键值对
    message = choices.get('message')  # 使用get方法安全地获取值

    # 如果需要访问嵌套字典中的值
    content = message.get('content')

    #print(f"Content: {content}")
    print(content)
    return content


# 3-组合内容
# 多次调用api并组合输出内容
content = ''
for i in tqdm(range(len(question_list))):
    content = content+'\n\n'+question_list[i].replace('介绍', '')+'\n\n'
    answer = askget(question_list[i]+',不要总结,采用学术性语言') # 调用函数
    content = content+answer # 拼接字符串
# 去除输出中的井、星、杠
content = content.replace(r'#', '')
content = content.replace(r'*', '')
content = content.replace(r'-', '')
print(content)


# 4-将字符串写入word文档
# 创建一个新的Word文档
doc = Document()

# 设置默认字体为宋体
doc.styles['Normal'].font.name = u'宋体'
doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')

# 设置字号为10.5磅
doc.styles['Normal'].font.size = Pt(10.5)

# 设置字体颜色为黑色
doc.styles['Normal'].font.color.rgb = RGBColor(0, 0, 0)

# 添加一个段落,内容为包含中文的字符串
content1 = doc.add_paragraph(content)

content1.paragraph_format.space_before = Pt(0) # 设置段前 0 磅
content1.paragraph_format.space_after = Pt(0) # 设置段后 0 磅
content1.paragraph_format.line_spacing = 1 # 设置行间距为 1

# 保存文档到指定路径
doc.save('example_v01.docx')

print("文档已成功创建并保存")

2 代码使用说明

a. 打开通义千问通义tongyi.ai_你的全能AI助手-通义千问,并点击右上角的“API服务”。

b. 点击“大模型服务平台百炼控制台”,此处可能需要先登录。

c. 打开控制台后点击右上角小人图标,再下拉菜单中点击“API-KEY”。

d. 打开API-KEY界面后,先点击右上角的“创建我的API-KEY”,在创建API-KEY后,点击操作下方的“查看”按钮,即可获得API-KEY,以“sk-”开头。

e. 将获得的API-KEY输入下图1箭头所示的双引号间,并可根据需求更改question_list中的问题。question_list列表中的问题可基于实习工厂的工艺流程确定,若一个工厂采用的工艺为粗格栅-进水泵房-细格栅-曝气沉砂池-SBR-混凝反应池-活性砂滤池-接触消毒池,则可对粗格栅、进水泵房、细格栅等每一个工艺单元分别提问。提问格式可为“介绍污水处理中的某工艺”。

f. 在该代码运行位置的文件夹下出现一个名为“example_v01.docx”的word文档,文档中即为大模型生成的实习报告内容,可用于后续的修改和插入图片。

3 代码设计思路

一份简单的实习报告至少需要由4个部分组成,分别是实习的目的与意义、实习单位简介、生产工艺介绍和实习心得体会。还要求需要图文并茂,这里的解决方案是生成文字并手动插入相关图片。因此,我们需要调用AI分别撰写4个部分,其中生产工艺介绍需要详细描述,最好细化到每一个工艺单元。

我们使用了通义千问(qwen-plus)大模型进行报告的撰写,通过调用API实现对qwen-plus的交互,并通过对返回值的提取、处理和组合,获取较长的实习报告篇幅,并写入到word中,便于后续编辑。

a. 通过API从通义千问获取回答

这里将该过程封装为askget函数,该函数需输入要向大模型提的str格式的问题,这里需输入自己的api_key(见第2部分代码使用说明),可更换model参数为不同模型名称,如qwen-turbo、qwen-long等。

b. 将返回的json字符串转为字符串

观察API调用返回值格式,其是json类型,先将其转换为键值对,发现需要的内容在多层嵌套中,先提取choices键的值,在该列表第0个元素中再提取message键的值,最后在其中提取content键的值。

c. 组合内容

由于实习报告需由多个部分组成,采用分开提多个问题的方式进行报告的撰写。这里使用for循环多次调用前述的askget函数,将获得的内容进行拼接。考虑到大模型返回内容中存在“#”、“*”、“-”等标记,对这些标记进行去除。

d. 将字符串写入word文档

由于word文档更易编辑,将组合完成的字符串内容输出到word文档。考虑到美观性和实用性,将word文档中字体设置为宋体,字号设置为10.5磅,字体颜色设置为黑色,段前段后均为0磅,行距设置为单倍行距。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值