基于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大语言模型体验

[2] deepseek api链接

[3] 硅基流动平台

[4] Home | Last.fm

[5] AutoGen --- AutoGen

相关推荐
elecfan20113 分钟前
本地化部署AI知识库:基于Ollama+DeepSeek+AnythingLLM保姆级教程
人工智能
幸福右手牵42 分钟前
WPS如何接入DeepSeek(通过JS宏调用)
javascript·人工智能·深度学习·wps·deepseek
cchjyq42 分钟前
opencv:基于暗通道先验(DCP)的内窥镜图像去雾
java·c++·图像处理·人工智能·opencv·计算机视觉
幸福右手牵44 分钟前
WPS如何接入DeepSeek(通过第三方工具)
人工智能·深度学习·wps·deepseek
大数据技术架构2 小时前
构建您的专属AI助手:在钉钉上部署DeepSeek
人工智能·钉钉
有续技术2 小时前
DEEPSEEK与GPT等AI技术在机床数据采集与数字化转型中的应用与影响
大数据·人工智能·gpt
NCU_wander2 小时前
大语言模型RAG,transformer和mamba
人工智能·语言模型·transformer
西猫雷婶2 小时前
python学opencv|读取图像(五十九)使用cv2.dilate()函数实现图像膨胀处理
人工智能·opencv·计算机视觉
数据学习(Datalearner)3 小时前
什么是推理大模型?DeepSeek R1推理大模型与DeepSeek V3模型的区别是什么?什么时候该使用推理大模型?
人工智能·深度学习·机器学习·大模型·推理大模型
wozijisunfly3 小时前
Opencv操作相关内容记录
人工智能·opencv·计算机视觉