18  阿里云百炼

阿里云的大模型服务平台百炼是一站式的大模型开发及应用构建平台。不论是开发者还是业务人员,都能深入参与大模型应用的设计和构建。您可以通过简单的界面操作,在 5 分钟内开发出一款大模型应用,或在几小时内训练出一个专属模型,从而将更多精力专注于应用创新。

18.1 百炼模型

百炼提供了丰富多样的模型选择,它集成了通义系列大模型和第三方大模型,涵盖文本、图像、音视频等不同模态。

参见:https://help.aliyun.com/zh/model-studio/getting-started/models?

18.2 调用百炼模型

您可以使用 OpenAI Python SDK、DashScope SDK 或 HTTP 接口调用通义千问模型。

18.2.1 使用 OpenAI SDK

下面使用 OpenAI SDK 调用百炼平台的通义千问 Max 模型。通义千问 Max 模型是通义千问系列模型中性能最强的模型,支持中文、英文等不同语言输入。2025年2月,三方基准测试平台LMArena1的大语言模型盲测榜单(“ChatBot Arena LLM”)最新排名显示,“Qwen2.5-Max”以1332分排总榜第7名,超过了深度求索的“DeepSeek-V3”以及OpenAI的“o1-mini”。而在数学和编程方面,“Qwen2.5-Max”则排名第1,在Hard prompts方面排名第2。

from openai import OpenAI
import os
from IPython.display import Markdown

# 创建 client
client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"), # 如果您没有配置环境变量,请在此处用您的API Key进行替换
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",  # 填写DashScope服务的base_url
)

# 生成对话
completion = client.chat.completions.create(
    model="qwen-max",
    messages=[
        {'role': 'system', 'content': 'You are a helpful assistant.'},
        {'role': 'user', 'content': '你跟ChatGPT和DeepSeek相比,谁更强?'}],
    temperature=0.8,
    top_p=0.8
    )

Markdown(completion.choices[0].message.content)

每个AI助手都有其独特的优势和特点,ChatGPT、DeepSeek以及我(Qwen)都是基于不同的技术和训练数据开发出来的。我们各自擅长处理不同类型的任务,在自然语言理解、生成、对话流畅性等方面各有千秋。具体到某个方面谁“更强”,这通常取决于特定应用场景和个人偏好。例如,有些用户可能更喜欢某一模型对于特定话题的理解能力或回复风格。

作为来自阿里云的大型语言模型,Qwen致力于提供高质量的信息服务与支持,不断学习进步以更好地满足用户需求。如果您有任何问题或需要帮助,请随时告诉我!这样也可以让您直接体验到我的能力和特色。

18.2.2 使用 DashScope SDK

使用 DashScope SDK 时,会自动读取环境变量中的 API_KEY 并创建对象。

# Refer to the document for workspace information: https://help.aliyun.com/document_detail/2746874.html    
        
from http import HTTPStatus
import dashscope

messages = [{'role': 'user', 'content': '你跟ChatGPT和DeepSeek相比,谁更强?'}]
response = dashscope.Generation.call("qwen-turbo",
                            messages=messages,
                            result_format='message',  # set the result to be "message"  format.
                            stream=False, # set streaming output
                            )

Markdown(response.output.choices[0].message.content)

作为阿里云开发的预训练语言模型通义千问,我与ChatGPT、DeepSeek一样,都是旨在理解和生成人类语言的AI助手。我们各自有独特的能力和优势,可以根据不同的场景和需求来提供帮助。与其他AI助手相比,我更了解中文语言习惯和文化背景,也能够更好地为中国用户提供服务。如果您有任何问题或需要帮助,请随时告诉我,我会尽力提供支持。

18.3 视觉推理

Qwen-VL(qwen-vl-plus/qwen-vl-max) 模型现有几大特点:

  • 大幅增强了图片中文字处理能力,能够成为生产力小帮手,提取、整理、总结文字信息不在话下。
  • 增加可处理分辨率范围,各分辨率和长宽比的图都能处理,大图和长图能看清。
  • 增强视觉推理和决策能力,适于搭建视觉Agent,让大模型Agent的想象力进一步扩展。
  • 升级看图做题能力,拍一拍习题图发给Qwen-VL,大模型能帮用户一步步解题。

from http import HTTPStatus
import dashscope
from IPython.display import Markdown

# 定义一个简单的多模态对话调用函数
def simple_multimodal_conversation_call():
    """Simple single round multimodal conversation call.
    """
    messages = [
        {
            "role": "user",
            
            # 使用一个列表来传递图片地址和提示词
            "content": [
                {"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"},
                {"text": "这是什么?"}
            ]
        }
    ]
    response = dashscope.MultiModalConversation.call(model='qwen-vl-plus',
                                                     messages=messages)
    # The response status_code is HTTPStatus.OK indicate success,
    # otherwise indicate request is failed, you can get error code
    # and message from code and message.
    if response.status_code == HTTPStatus.OK:
        return(response)
    else:
        print(response.code)  # The error code.
        print(response.message)  # The error message.

# 调用视觉推理模型
response = simple_multimodal_conversation_call()

# 获取响应内容
content = response.output.choices[0]['message']['content'][0]['text']

# 使用 IPython.display 模块的 Markdown 类来显示 Markdown 内容。
Markdown(content)

这张图片显示了一位女士和一只狗在海滩上。她们似乎正在互动,可能是在玩耍或训练中握手。背景是美丽的日落景色,海浪轻轻拍打着海岸线。

这位女士穿着格子衬衫,并且戴着一个手镯。她坐在沙滩上与她的宠物进行着愉快的时光。这只狗看起来是一只拉布拉多犬或其他类似的品种,它也戴着手套以保护它的爪子并保持清洁。

这个场景充满了友谊、爱以及对大自然美景的欣赏。这是一个温馨的画面,展示了人与动物之间深厚的情感纽带。

18.4 文生图

通义万相-文本生成图像是基于自研的Composer组合生成框架的AI绘画创作大模型,能够根据用户输入的文字内容,生成符合语义描述的多样化风格的图像。通过知识重组与可变维度扩散模型,加速收敛并提升最终生成图片的效果,布局自然、细节丰富、画面细腻、结果逼真。AI深度理解中英文文本语义,让文字秒变精致AI画作。

当前模型支持的风格包括但不限于:

  • 水彩、油画、中国画、素描、扁平插画、二次元、3D卡通。
  • 支持中英文双语输入。
  • 支持客户自定义咒语书/修饰词,可生成不同风格、不同主题、不同派别的图片,满足个性创意的AI图片生成需求。
  • 支持输入参考图片进行参考内容或者参考风格迁移,支持更丰富的风格、主题和派别,AI作画质量更加高保真。
from http import HTTPStatus
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
import requests
from dashscope import ImageSynthesis

def simple_call(prompt = '一个面容姣好的汉族少女骑着一头白色的老虎在暗夜森林中穿梭,二次元风格', outdir = "output", filename = "girl-riding-tiger.png"):
    rsp = ImageSynthesis.call(model=ImageSynthesis.Models.wanx_v1,
                              prompt=prompt,
                              n=1,
                              size='1024*1024')
    if rsp.status_code == HTTPStatus.OK:
        print(rsp.output)
        print(rsp.usage)
        # save file to current directory
        files = []
        for result in rsp.output.results:
            file = './%s/%s' % (outdir, filename)
            with open(file, 'wb+') as f:
                f.write(requests.get(result.url).content)
            files.append(file)
        return(files)
    else:
        print('Failed, status_code: %s, code: %s, message: %s' %
              (rsp.status_code, rsp.code, rsp.message))

# 调用文生图模型
simple_call()
{"task_id": "729e179b-ffa1-48b3-820f-1f00f2548bd2", "task_status": "SUCCEEDED", "results": [{"url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/1d/3b/20250218/9d34e27a/62c59c45-87af-43f7-ad52-f4be608dbf6f-1.png?Expires=1739960506&OSSAccessKeyId=LTAI5tQZd8AEcZX6KZV4G8qL&Signature=vfhki8kJ3jdVh6y%2BFv0pM7w%2Bc20%3D"}], "submit_time": "2025-02-18 18:21:20.281", "scheduled_time": "2025-02-18 18:21:20.336", "end_time": "2025-02-18 18:21:47.300", "task_metrics": {"TOTAL": 1, "SUCCEEDED": 1, "FAILED": 0}}
{"image_count": 1}
['./output/girl-riding-tiger.png']

显示模型生成的图片。

from PIL import Image
import matplotlib.pyplot as plt

# 读取所有图片文件
image_path = "output/girl-riding-tiger.png"
image = Image.open(image_path)

plt.imshow(image)

18.5 语音识别

SenseVoice 语音识别大模型专注于高精度多语言语音识别、情感辨识和音频事件检测,支持超过 50 种语言的识别,整体效果优于 Whisper 模型,中文与粤语识别准确率相对提升在 50% 以上。

# For prerequisites running the following sample, visit https://help.aliyun.com/document_detail/611472.html

import json
from urllib import request
from http import HTTPStatus

# 使用 dashscope 调用模型
import dashscope


task_response = dashscope.audio.asr.Transcription.async_call(
    model='sensevoice-v1',
    file_urls=[
        'https://dashscope.oss-cn-beijing.aliyuncs.com/samples/audio/sensevoice/rich_text_example_1.wav'],
    language_hints=['en'],)

transcription_response = dashscope.audio.asr.Transcription.wait(
    task=task_response.output.task_id)

if transcription_response.status_code == HTTPStatus.OK:
    for transcription in transcription_response.output['results']:
        url = transcription['transcription_url']
        result = json.loads(request.urlopen(url).read().decode('utf8'))
        Markdown(json.dumps(result, indent=4, ensure_ascii=False))
    print('transcription done!')
else:
    print('Error: ', transcription_response.output.message)
transcription done!

18.6 语音合成

Sambert 语音合成 API 基于达摩院改良的自回归韵律模型,支持文本至语音的实时流式合成。

import sys

import dashscope
from dashscope.audio.tts import SpeechSynthesizer

result = SpeechSynthesizer.call(model='sambert-zhichu-v1',
                                text='今天天气怎么样',
                                sample_rate=48000)

tts_output = "output/weather.wav"
if result.get_audio_data() is not None:
    with open(tts_output, 'wb') as f:
        f.write(result.get_audio_data())
    print('SUCCESS: get audio data: %dbytes in output.wav' %
          (sys.getsizeof(result.get_audio_data())))
else:
    print('ERROR: response is %s' % (result.get_response()))
SUCCESS: get audio data: 135677bytes in output.wav

使用 IPython.display 模块的 Audio 类来显示音频文件。

from IPython.display import Audio
from IPython.core.display import HTML

def html_tag_audio(file, file_type='wav'):
    file_type = file_type.lower()
    if file_type not in ['wav', 'mp3', 'ogg']:
        raise ValueError("Invalid audio type. Supported types: 'wav', 'mp3', 'ogg'.")
    
    audio_tag = f'''
    <audio controls>
      <source src="{file}" type="audio/{file_type}">
      Your browser does not support the audio element.
    </audio>
    '''
    return HTML(audio_tag)

# Example usage
tts_output = "output/weather.wav"
html_tag_audio(tts_output, file_type="wav")

18.7 文档解析

Qwen-Long 是在通义千问针对超长上下文处理场景的大语言模型,支持中文、英文等不同语言输入,支持最长 1000 万 tokens(约 1500 万字或 1.5 万页文档)的超长上下文对话。配合同步上线的文档服务,可支持 word、pdf、markdown、epub、mobi 等多种文档格式的解析和对话。

18.7.1 上传文档

from pathlib import Path
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"), # 如果您没有配置环境变量,请在此处用您的API Key进行替换
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",  # 填写DashScope服务的base_url
)

file_object = client.files.create(file=Path("example/Kraken2.pdf"), 
                                  purpose="file-extract")

print(f"文件上传成功,文件ID: {file_object.id}")
文件上传成功,文件ID: file-fe-LySnGx41erbd3pG1rTMiKGVQ

18.7.2 查询文件

查询、删除文件。

# 查询文件元信息
client.files.retrieve(file_object.id)

# 查询文件列表
client.files.list()
SyncCursorPage[FileObject](data=[FileObject(id='file-fe-LySnGx41erbd3pG1rTMiKGVQ', bytes=123750, created_at=1739874244, filename='Kraken2.pdf', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-UhX2YTfoGPQr1GRdaDjDCTu9', bytes=1460, created_at=1739873588, filename='syncom-group-library.md', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-fYsRF7lDiTWmp67PK1U6L1El', bytes=1006, created_at=1739873559, filename='gaoch-cv.md', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-OnWGXZae7MUoF7TUuXjDdmLL', bytes=123750, created_at=1739873449, filename='Kraken2.pdf', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-GbY5nvfIzKyPAxP9aAEKQbsn', bytes=1460, created_at=1739414858, filename='syncom-group-library.md', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-d6B6l61mrrs5fc8U1QJ8hi3I', bytes=1006, created_at=1739414852, filename='gaoch-cv.md', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-PVADUTrSKXmwZ1X9x0e9pszT', bytes=123750, created_at=1739414844, filename='Kraken2.pdf', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-eogD3rvgT6uTMJWpJnHNp00U', bytes=1460, created_at=1739414780, filename='syncom-group-library.md', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-cmKyi2v1tC3Mxfu8PWNGQdu9', bytes=1006, created_at=1739414764, filename='gaoch-cv.md', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-cNv1OWmcw1QlT5hs226vdVqo', bytes=123750, created_at=1739414746, filename='Kraken2.pdf', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-deyl3COTUvsxO8JCAfPPzPCU', bytes=1460, created_at=1739413673, filename='syncom-group-library.md', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-YKIpPS6Gn3aSbnbxVK2ITKEV', bytes=1006, created_at=1739413660, filename='gaoch-cv.md', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-Le7L1MdNrQjzH19U4mwoXGhX', bytes=123750, created_at=1739413637, filename='Kraken2.pdf', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-YUueFKyqQgR4KxsD4f0Xo3hy', bytes=1460, created_at=1739413573, filename='syncom-group-library.md', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-Qz4RSuwUCD7GI20h2woiyHBW', bytes=1006, created_at=1739413561, filename='gaoch-cv.md', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-mQUE9MzpzWxLbnsArHXNDL8Z', bytes=123750, created_at=1739413553, filename='Kraken2.pdf', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-uRhvlu2YM7fTtavF8QTQHYf6', bytes=1006, created_at=1739413422, filename='gaoch-cv.md', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-XYmu2ma8WoYeDwapVottjJbP', bytes=123750, created_at=1739413392, filename='Kraken2.pdf', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-PZ8CQnd7f6pQo4wJks6DTdH3', bytes=123750, created_at=1739413294, filename='Kraken2.pdf', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-LBxrE70nGWXxqQoLOtHVn0hK', bytes=123750, created_at=1727754850, filename='Kraken2.pdf', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-99niQQOZZ4IJ4FrkkEcediaY', bytes=1460, created_at=1726562411, filename='syncom-group-library.md', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-YLkL9wbty5jGc1BdGdkO05cN', bytes=1006, created_at=1726562407, filename='gaoch-cv.md', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-cG9T8L8CJhzdb0PTMMoyTizR', bytes=123750, created_at=1726562400, filename='Kraken2.pdf', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-TWXoghFaBtZMkF9jwG505hGl', bytes=1460, created_at=1726562379, filename='syncom-group-library.md', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-84fZye53knxXL0nHaJT3nG5K', bytes=1006, created_at=1726562376, filename='gaoch-cv.md', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-FegrQSGslKgnjoM3hz9BylgC', bytes=123750, created_at=1726562370, filename='Kraken2.pdf', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-d0surOfpU9ck8YP9grzxyeSU', bytes=1460, created_at=1726559802, filename='syncom-group-library.md', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-U8DwGdPB6Txo7cIo90MPAjlU', bytes=1006, created_at=1726559791, filename='gaoch-cv.md', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-iAiDxfZ6l09nmaNKNOjnYdCX', bytes=123750, created_at=1726557247, filename='Kraken2.pdf', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-5q4ob5AoPyEQA9vnQAIBaXIU', bytes=123750, created_at=1726556558, filename='Kraken2.pdf', object='file', purpose='file-extract', status='processed', status_details=None), FileObject(id='file-fe-LZaGRINYblYiXxAhJaHhBMZz', bytes=6416, created_at=1726556278, filename='安装Kraken2.md', object='file', purpose='file-extract', status='processed', status_details=None)], object='list', has_more=False)
# 删除文件
client.files.delete(file_object.id)

18.8 基于文档的对话

Qwen-Long 支持长文本(文档)对话,文档内容需放在 rolesystemmessage 中,有以下两种方式可将文档信息输入给模型:

  • 在提前上传文档获取文档 ID(fileid)后,可以直接提供 fileid。支持在对话中使用一个或多个 fileid
  • 直接输入需要处理的文本格式的文档内容(file content)。
# 获取文件内容
# 新文档上传后需要等待模型解析,首轮响应时间可能较长
completion = client.chat.completions.create(
    model="qwen-long",
    messages=[
        {
            'role': 'system',
            'content': 'You are a helpful assistant.'
        },
        {
            'role': 'system',
            'content': f'fileid://{file_object.id}'
        },
        {
            'role': 'user',
            'content': '这篇文章讲了什么?'
        }
    ],
    stream=False
)

# 打印文档解析结果
Markdown(completion.choices[0].message.content)

这篇文章介绍了几种常用的基于宏基因组学数据进行物种注释的工具,重点讲述了Kraken2。文章涵盖了以下内容:

  1. 常用工具概述:提到了Kraken2、MetaPhlAn(MetaPhlAn3)和Centrifuge三种工具的工作原理、优点及适用场景。

  2. Kraken2的特点

    • 工作原理:基于k-mer比对技术,将reads比对到参考数据库中的特定k-mer集合,从而实现快速分类注释。
    • 优势:处理大规模数据时速度非常快。
    • 数据库选项:支持使用标准数据库(如NCBI RefSeq)或自定义数据库。
    • 输出结果:生成物种分类信息及相对丰度。
  3. Standard-8数据库:特别介绍了适用于个人电脑的Kraken2 Standard-8数据库,其特点包括数据库大小限制为8GB、针对常见物种优化、快速分析等。该数据库适合在计算资源有限的情况下使用,例如在台式电脑上进行本地分析或在有存储限制的云计算环境中使用。

  4. Kraken2使用流程:包括安装Kraken2、下载数据库、运行Kraken2进行分类注释的具体步骤,并提供了命令行示例。

  5. 结果分析与可视化:说明了如何解读Kraken2的输出文件,并给出了用R语言进行结果可视化的简单示例。

总的来说,文章详细描述了如何利用Kraken2及其优化版本Standard-8数据库来进行宏基因组测序数据的物种注释分析。

18.8.1 多个文档

当有多个文档时,可以将多个 fileid 传递给 content

# 首次对话会等待文档解析完成,首轮响应时间可能较长
completion = client.chat.completions.create(
    model="qwen-long",
    messages=[
        {
            'role': 'system',
            'content': 'You are a helpful assistant.'
        },
        {
            'role': 'system',
            'content': f"fileid://{file_1.id},fileid://{file_2.id}"
        },
        {
            'role': 'user',
            'content': '这几篇文章讲了什么?'
        }
    ],
    stream=False
)

18.8.2 追加文档

使用下面的方法,可以在对话过程中追加文档。

# data_1.pdf为原文档,data_2.pdf为追加文档
file_1 = client.files.create(file=Path("example/gaoch-cv.md"),
                             purpose="file-extract")

# 初始化messages列表
messages = [
    {
        'role': 'system',
        'content': 'You are a helpful assistant.'
    },
    {
        'role': 'system',
        'content': f'fileid://{file_1.id}'
    },
    {
        'role': 'user',
        'content': '这篇文章讲了什么?'
    },
]
# 第一轮响应
completion = client.chat.completions.create(
    model="qwen-long",
    messages=messages,
    stream=False
)

# 打印出第一轮响应
Markdown(f"第一轮响应:{completion.choices[0].message.content}")

第一轮响应:文档《gaoch-cv.md》主要是高春辉的个人简介,内容包括他的教育背景、工作经历、研究领域和学术成果等方面。具体如下:

  • 教育及工作背景:高春辉是微生物学博士,现任华中农业大学资源与环境学院副研究员,硕士生导师。他在2012年获得华中农业大学博士学位,并在2013年至2015年间在中国科技大学进行了博士后研究。自2016年起,他在华中农业大学任职。

  • 研究领域:高春辉拥有分子生物学与生物化学、生物信息学、功能基因组学等多学科背景,专注于微生物关键表型的调控机制研究,特别是合成微生物群落的涌现性功能和调控研究。

  • 科研项目:他曾主持过多个重要科研项目,如自然科学基金青年项目、面上项目、国家重点研发计划子课题、教育部产学合作项目以及博士后基金等。

  • 学术成果:高春辉已在ISME J、ISME Communications、Microbial Ecology、Frontiers in Genetics等多个知名学术期刊上发表了45篇研究论文,参与编写了2部书籍,并获得了1项软件著作权。其研究成果在谷歌学术上的引用次数超过1500次,H指数达到24。此外,他还担任iMeta期刊的青年编委。

文档还附带了一个链接,指向高春辉的GitHub头像。

将第一轮响应的内容添加到历史记录中。

# 构造assistant_message
assistant_message = {
    "role": "assistant",
    "content": completion.choices[0].message.content}

# 将assistant_message添加到messages中
messages.append(assistant_message)

上传一个新文档。

# 获取追加文档的fileid
file_2 = client.files.create(file=Path("example/syncom-group-library.md"), 
                             purpose="file-extract")

# 将追加文档的fileid添加到messages中
system_message = {
    'role': 'system',
    'content': f'fileid://{file_2.id}'
}
messages.append(system_message)

# 添加用户问题
messages.append({
    'role': 'user',
    'content': '这两篇文章的内容有什么异同点?'
})

# 追加文档后的响应
completion = client.chat.completions.create(
    model="qwen-long",
    messages=messages,
    stream=False
)

Markdown(f"追加文档后的响应:{completion.choices[0].message.content}")

追加文档后的响应:这两篇文章的内容存在明显的不同点和一些潜在的联系,具体如下:

18.8.3 不同点

  1. 主题和目的
    • 《gaoch-cv.md》:主要介绍高春辉个人的学术背景、研究方向和成就,是一份个人简历性质的文档,旨在展示高春辉的专业能力和学术贡献。
    • 《syncom-group-library.md》:描述的是一个名为“土壤生物膜与环境健康书屋”的机构或设施,介绍了书屋的建立背景、宗旨和服务规则,重点在于书屋的功能和使用约定。
  2. 内容结构
    • 《gaoch-cv.md》:详细列出了个人的教育经历、工作经历、研究领域、科研项目和学术成果,具有较强的个人色彩。
    • 《syncom-group-library.md》:则侧重于书屋的设立目的、服务对象以及借阅规则等,更偏向于机构管理和运营方面的信息。
  3. 受众群体
    • 《gaoch-cv.md》:面向对高春辉的研究感兴趣的学术界人士、潜在合作者或学生。
    • 《syncom-group-library.md》:面向书屋的使用者,包括本科生、研究生、博士生和研究人员,告知他们如何利用书屋资源。

18.8.4 相同点或潜在联系

  1. 学科关联
    • 高春辉的研究领域(微生物学、土壤微生物学)与书屋的主题(土壤生物膜与环境健康)有密切的关系,都涉及微生物学及其应用。
  2. 教育和人才培养
    • 两篇文章都提到了对学生和研究人员的支持。高春辉作为导师指导学生,而书屋则是为不同层次的学生和研究人员提供学习和研究资源,服务于“本-硕-博-研”全流程人才培养。
  3. 资源共享
    • 高春辉的研究成果可以通过书屋中的相关书籍和文献得到传播和应用,书屋的建立有助于促进微生物学领域的知识交流和共享。

总结来说,虽然两篇文章的具体内容和侧重点不同,但它们都在微生物学及其相关领域内发挥作用,共同推动该领域的发展和人才培养。

18.9 总结

通过上面的介绍,我们可以看到,百炼平台提供了丰富的模型和功能,可以满足不同的需求。在国内,类似的平台还有火山引擎、Kimi、ChatGLM 等,他们都有提供自身自主开发的大模型、国际上的开源模型以及国内第三方发表的模型等。通常都支持 OpenAI 的 API 接口,方便开发者使用。


  1. “ChatBot Arena LLM”榜单由美国加州大学伯利克分校天空计算实验室与LMArena联合开发,通过用户盲测的方式,覆盖了对话、代码、图文生成、网页开发等多维度能力评估,最终基于260万票结果反映出197个模型在真实体验下的排名情况,也是业内公认的权威榜单。↩︎