基于AutoGen框架的DeepSeek使用

DeepSeek:国产大模型之光

DeepSeek(深度求索)是一家中国人工智能软件公司,总部位于浙江杭州,由中国对冲基金 High-Flyer 投资支持。它是由梁文峰于 2023 年 7 月 17 日创立 ,现梁文峰担任公司首席执行官。它有两个比较流行的版本:

  • R1版本:DeepSeek-R1 在后训练阶段大规模使用了强化学习技术,在仅有极少标注数据的情况下,极大提升了模型推理能力。在数学、代码、自然语言推理等任务上,性能比肩 OpenAI o1 正式版。

    DeepSeek R1版本测评

  • V3版本:DeepSeek-V3 多项评测成绩超越了 Qwen2.5-72B 和 Llama-3.1-405B 等其他开源模型,并在性能上和世界顶尖的闭源模型 GPT-4o 以及 Claude-3.5-Sonnet 不分伯仲。

    DeepSeek V3版本测评

不过最近官网API不太稳定,真得吐槽下,国内人都不够用,给什么老外用哈!不稳定的API,直接影响Agent的表现哈,真血泪教训!

DeepSeek真心不稳定

这时候你就可以尝试下集成LLM 的平台------硅基流动平台 !它提供了稳定的DeepSeek调用服务,现在注册还送免费Token哈

AutoGen:微软出品的智能体框架

AutoGen是由微软开源的Agent框架,后台算是有了保障了。上个月左右发布了最新0.4版本,相比之前0.2版本也更加高效和稳定了:

  • 支持异步消息处理(较少出现对话卡壳)
  • 新增群聊管理功能(多智能体合作)
  • 强化异常处理机制

和其他框架(比如LangChain)相比,可以直接看下表哈。

各个Agent框架的比较

实战案例:根据歌名获取音乐链接

让我们用代码造个音乐小助手,实现中英文智能搜索:

第一步:安装相关python包

python 复制代码
# 安装必备工具包
!pip install autogen_ext
!pip install autogen_core
!pip install autogen_agentchat

第二步:使用Deepseek模型

python 复制代码
# 配置DeepSeek V3的专属通道
custom_model_client = OpenAIChatCompletionClient(
    model= "deepseek-ai/DeepSeek-V3",
    base_url= "https://api.siliconflow.cn",  # 硅基流动api的url
    api_key= "api key"
)

第三步:为Agent植入"音乐基因"

为Agent植入"音乐基因",也就是给Agent一个系统设定,我们要实现如下功能哈:

  • 能自动识别歌手国籍
  • 中英文智能转换(比如把"久石让"转成"Joe Hisaishi")
  • 输出标准JSON格式
python 复制代码
async def get_track_link(track_name: str, artist_name: str= None)-> json:
    cancellation_token= CancellationToken()
    assistant= AssistantAgent(
        name= "assistant",
        system_message= "你是一个音乐大师,你对世界上音乐家都很了解。"
                        "对于给定的音乐家姓名与歌曲,你需要判断它的国籍,如果是中国歌手,请你将音乐家姓名和歌曲转换为中文;"
                        "如果是非中国的歌手,请你将音乐家姓名和歌曲名都转换为英文(切记,别忘了歌曲名也转换为英文)。"
                        "你仅仅输出下面内容(例子):{\"track_name\": \"漂洋过海来看你\", \"artist_name\": \"李宗盛\"}",
        model_client= custom_model_client
    )
    user_input= f"用户输入的歌曲名: {track_name}, 艺术家名: {artist_name}"
    response= await assistant.on_messages([TextMessage(content= user_input, source= "user")], cancellation_token)
    # Parse the search_result string into a dictionary
    try:
        search_result= json.loads(response.chat_message.content)
    except json.JSONDecodeError:
        print("Failed to parse the search result as JSON.")
        return None
    # 
    music_name= search_result["track_name"]
    artist_name= search_result["artist_name"]
    search_result= search_track(music_name, artist_name)
    tracks= search_result.get("results", {}).get("trackmatches", {}).get("track", [])
    if not tracks:
        return
    # 获取前 3 个链接(如果不足 3 个,则全部输出)
    track_links= [track.get("url") for track in tracks[:3]]
    ret_json= {
        "music": music_name,
        "artist": artist_name,
        "links": track_links
    }
    return ret_json

第四步:Last.fm对接

Last.fm注册(注册链接再最后,免费的哈)后,就可以使用相关的API服务了。

python 复制代码
# 根据歌名搜索歌曲
def search_track(track_name, artist_name= None, limit= 5):
    url= "http://ws.audioscrobbler.com/2.0/"
    params= {
        "method": "track.search",
        "track": track_name,
        "api_key": "Lastfm api key", # Last.fm API 密钥
        "format": "json",
        "limit": limit
    }
    if artist_name:
        params["artist"]= artist_name
    response= requests.get(url, params= params)
    return response.json()

效果展示

输入内容:

python 复制代码
# 示例调用
track_name= "The rain"  # 歌名
artist_name= "久石让"    # 艺术家名称(可选)
track_link= await get_track_link(track_name, artist_name)
track_link

AI会自动转换成英文搜索,输出类似:

json 复制代码
{'music': 'The Rain',
 'artist': 'Joe Hisaishi',
 'links': ['https://www.last.fm/music/Joe+Hisaishi/_/In+the+Rain',
  'https://www.last.fm/music/Joe+Hisaishi/_/The+Rain',
  'https://www.last.fm/music/Joe+Hisaishi/_/Morning+in+the+Slag+Ravine']}

结语

我们给出了DeepSeek的介绍,API的稳定使用方法和一个简单的音乐链接获取案例。最后,不得不感慨,百度啊百度,你几乎是国内最早推出LLM的,最早收费的,结果你又是"起了个大早,赶了个晚集"。

"百度式"遗憾

链接

1\] [deepseek大语言模型体验](https://link.juejin.cn?target=https%3A%2F%2Fchat.deepseek.com%2F "https://chat.deepseek.com/") \[2\] [deepseek api链接](https://link.juejin.cn?target=https%3A%2F%2Fplatform.deepseek.com%2F "https://platform.deepseek.com/") \[3\] [硅基流动平台](https://link.juejin.cn?target=https%3A%2F%2Fcloud.siliconflow.cn%2Fi%2FxnYWCoW9 "https://cloud.siliconflow.cn/i/xnYWCoW9") \[4\] [Home \| Last.fm](https://link.juejin.cn?target=https%3A%2F%2Fwww.last.fm%2Fhome "https://www.last.fm/home") \[5\] [AutoGen --- AutoGen](https://link.juejin.cn?target=https%3A%2F%2Fmicrosoft.github.io%2Fautogen%2Fstable%2F "https://microsoft.github.io/autogen/stable/")

相关推荐
九章云极AladdinEdu42 分钟前
GPU与NPU异构计算任务划分算法研究:基于强化学习的Transformer负载均衡实践
java·开发语言·人工智能·深度学习·测试工具·负载均衡·transformer
量子-Alex1 小时前
【目标检测】RT-DETR
人工智能·目标检测·计算机视觉
2201_754918411 小时前
OpenCV 图像透视变换详解
人工智能·opencv·计算机视觉
羽星_s1 小时前
文本分类任务Qwen3-0.6B与Bert:实验见解
人工智能·bert·文本分类·ai大模型·qwen3
摸鱼仙人~1 小时前
TensorFlow/Keras实现知识蒸馏案例
人工智能·tensorflow·keras
浊酒南街1 小时前
TensorFlow之微分求导
人工智能·python·tensorflow
羽凌寒1 小时前
曝光融合(Exposure Fusion)
图像处理·人工智能·计算机视觉
lucky_lyovo1 小时前
机器学习-特征工程
人工智能·机器学习
alpszero1 小时前
YOLO11解决方案之对象裁剪探索
人工智能·python·计算机视觉·yolo11
Matlab仿真实验室2 小时前
基于Matlab实现图像透明叠加程序
人工智能·计算机视觉·matlab