久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    基于 Qwen2.5

     江海博覽 2024-09-22 發布于浙江

    9 月 19 日,阿里開源了 Qwen2.5 系列大模型全家桶:除常規的語言模型 Qwen2.5 之外,還發布了專門針對編程的Qwen2.5-Coder模型和數學的 Qwen2.5-Math 模型,并且針對每個模型都提供了不同規模參數版本,包括:

    • Qwen2.5 語音模型: 0.5B, 1.5B, 3B, 7B, 14B, 32B 和 72B
    • Qwen2.5-Coder 編程模型: 1.5B, 7B, 以及即將推出的 32B
    • Qwen2.5-Math 數學模型: 1.5B, 7B 和 72B

    Qwen2.5 系列模型性能和推理能力對比,老牛同學不在贅述,我們可以到 Qwen 官網博客查看詳細介紹:https://qwenlm./zh/blog/qwen2.5/

    在國內開源大模型中,老牛同學用遙遙領先做為 Qwen2.5 模型系列總結一點也不為過,國內開源大模型能真打的實在是太少了!

    老牛同學對Qwen2.5-Coder比較感興趣,可能是老牛同學專業的原因,非常期待能有一個智能編程的模型或應用,真所謂:碼無止境,學無止境!

    基于 Qwen2.5-Coder 和 CrewAI 框架,實現智能編程系統的實戰教程模型能力比對

    今天,老牛同學就基于Qwen2.5-Coder模型,結合CrewAI多智能體框架,實現一個能根據軟件需求編寫程序代碼的系統,同時感受一下Qwen2.5-Coder的能力。因此本文大致分為以下三部分:

    • Qwen2.5-Coder本地部署和簡單驗證
    • CrewAI多智能體設計、和基于Qwen2.5-Coder的實現代碼
    • 最終,驗證CrewAI智能體編寫的程序

    Qwen2.5-Coder 本地部署

    通過老牛同學前面的文章可以看到,我們至少有 3 種方式在本地部署和推理大模型,本文就是不在詳細介紹其過程了(感興趣的朋友可以翻看一下老牛同學之前文章)。

    為了盡快實現我們的目標,我們將使用Ollama快速在本地部署Qwen2.5-Coder模型;關于 Ollama 的詳細介紹和使用教程,可以參考老牛同學之前文章:https://mp.weixin.qq.com/s/majDONtuAUzN2SAaYWxH1Q

    我們安裝好Ollama程序之后,通過以下一條命令,即可完成大模型的下載和部署:

    ollama run qwen2.5-coder:7b

    下載和部署成功之后,Ollama默認自帶了一個終端對話窗口:

    基于 Qwen2.5-Coder 和 CrewAI 框架,實現智能編程系統的實戰教程Ollama下載和部署

    至此,Qwen2.5-Coder模型本地部署就成功了,接下來我們來實現多智能體代碼邏輯~

    CrewAI 多智能體設計和實現

    CrewAI是一個多智能體框架,關于它的詳細介紹和使用教程,可以參考老牛同學之前文章:https://mp.weixin.qq.com/s/wqOqupVIDsKDW-Kmj3IRYw

    基于 Qwen2.5-Coder 和 CrewAI 框架,實現智能編程系統的實戰教程

    工欲善其事,必先利其器,我們先準備一下CrewAI的研發環境,我們通過Miniconda管理 Python 虛擬環境,Miniconda的安裝和使用可以參考老牛同學之前的文章:https://mp.weixin.qq.com/s/P_ufvz4MWVSqv_VM-rJp9w

    # Python虛擬環境名:CrewAI,版本號:3.10
    conda create -n CrewAI python=3.10 -y
    
    
    # 激活虛擬環境
    conda activate CrewAI
    
    
    # 安裝 CrewAI 框架依賴
    pip install crewai

    我們的編程智能體為游戲智能編程團隊(姑且就叫這個名吧),這個團隊由3 個角色組成(即:3 個智能體),他們的工作職責設定如下:

    • 軟件工程師:負責根據需求編寫程序代碼
    • 質量工程師:發現并修復軟件工程師的代碼 Bug 和錯誤
    • 首席質量工程師:檢測程序完整性,并檢測是否符合軟件需求

    我們通過以下步驟,完成游戲智能編程團隊整體邏輯(Python 文件:CrewAI-Game.py),首先我們需要導入程序的均依賴類:

    import os from textwrap import dedent from crewai import Agent, Task, Crew

    【第一步:配置Qwen2.5-Coder大模型】

    # 配置模型(qwen2.5-coder:7b)
    os.environ['OPENAI_API_BASE'] = 'http://127.0.0.1:11434/v1'
    os.environ['OPENAI_MODEL_NAME'] = 'qwen2.5-coder:7b',
    os.environ['OPENAI_API_KEY'] = 'EMPTY'

    【第二步:定義3 個角色(即:3 個智能體)】

    3 個智能體分別是:高級軟件工程師、高級質量工程師和首席質量工程師

    # # 3個智能體邏輯 # def senior_engineer_agent(): '''高級軟件工程師智能體''' return Agent( role='高級軟件工程師', goal='根據需求完成軟件編程', backstory=dedent('''你是一位國際領先的科技公司的高級軟件工程師。 你非常擅長Python編程,并盡自己的最大努力編寫功能齊全、運行良好的完美代碼。 '''), allow_delegation=False, verbose=True ) def qa_engineer_agent(): '''高級軟件質量工程師智能體''' return Agent( role='高級軟件質量工程師', goal='分析程序代碼,找出其中的錯誤,并修復這些錯誤代碼', backstory=dedent('''你是一位檢測代碼的高級工程師。 你對代碼細節很敏銳,非常擅長找出代碼中的Bug,包括檢查是否缺少導入、變量聲明、不匹配括號和語法錯誤等。 您還能檢查出代碼的安全漏洞和邏輯錯誤。 '''), allow_delegation=False, verbose=True ) def chief_qa_engineer_agent(): '''首席軟件質量工程師智能體''' return Agent( role='首席軟件質量工程師', goal='確保代碼實現了需求', backstory='''你懷疑程序員沒有按照需求編寫軟件,你特別專注于編寫高質量的代碼。''', allow_delegation=True, verbose=True )

    【第三步:定義3 個任務(即:3 個智能體的任務)】

    與 3 個智能體對應,每個智能體均對應有 1 個任務:

    #
    # 3個任務邏輯
    #
    
    
    def code_task(agent, game):
    	return Task(description=dedent(f'''你將按照軟件需求,使用Python編寫程序:
    
    
    		軟件需求
    		------------
    		{game}
    		'''),
    		expected_output='你的輸出是完整的Python代碼, 特別注意只需要輸出Python代碼,不要輸出其他任何內容!',
    		agent=agent
    	)
    
    
    def review_task(agent, game):
    	return Task(description=dedent(f'''你將按照軟件需求,進一步使用Python完善給定的程序:
    
    
    		軟件需求
    		------------
    		{game}
    
    
    		根據給定的Python程序代碼,檢查其中的錯誤。包括檢查邏輯錯誤語法錯誤、缺少導入、變量聲明、括號不匹配,以及安全漏洞。
    		'''),
    		expected_output='你的輸出是完整的Python代碼, 特別注意只需要輸出Python代碼,不要輸出其他任何內容!',
    		agent=agent
    	)
    
    
    def evaluate_task(agent, game):
    	return Task(description=dedent(f'''你將按照軟件需求,進一步使用Python完善給定的程序:
    
    
    		軟件需求
    		------------
    		{game}
    
    
    		查看給定的Python程序代碼,確保程序代碼完整,并且符合軟件需求。
    		'''),
    		expected_output='你的輸出是完整的Python代碼, 特別注意只需要輸出Python代碼,不要輸出其他任何內容!',
    		agent=agent
    	)

    【第四步:定義團隊,組織智能體協同執行任務】

    CrewAI中,Crew代表團隊,它有agentstasks這 2 個核心屬性,最終通過kickoff()方法觸發執行整個流程:

    # # 團隊邏輯 # print('') game = input('# 您好,我們是游戲智能編程團隊,請輸入游戲的詳細描述:\n\n') print('') # 智能體 senior_engineer_agent = senior_engineer_agent() qa_engineer_agent = qa_engineer_agent() chief_qa_engineer_agent = chief_qa_engineer_agent() # 任務 code_game = code_task(senior_engineer_agent, game) review_game = review_task(qa_engineer_agent, game) approve_game = evaluate_task(chief_qa_engineer_agent, game) # 團隊 crew = Crew( agents=[ senior_engineer_agent, qa_engineer_agent, chief_qa_engineer_agent ], tasks=[ code_game, review_game, approve_game ], verbose=True ) # 執行 game_code = crew.kickoff()

    最后,我們拿到 Python 代碼之后,希望能保存到本地文件(Python 文件:Game.py):

    # 輸出
    print('\n\n########################')
    print('## 游戲代碼結果')
    print('########################\n')
    print(game_code)
    
    
    # 存儲代碼
    filename = 'Game.py'
    
    
    print('\n\n########################\n')
    with open(filename, 'w', encoding='utf-8') as file:
        file.write(game_code)
    
    
    print(f'游戲代碼已經存儲到文件: {filename}')
    print(f'你可以運行游戲:python {filename}')

    以上步驟即完成了我們只能編程團隊代碼,接下就可以執行了:python CrewAI-Game.py

    CrewAI 執行過程中,我們看到 3 個智能體執行詳細信息:

    • 軟件工程師執行過程信息
    • 質量工程師執行過程信息
    • 首席工程師執行過程信息

    最后,我們運行本地存儲的小游戲程序:python Game.py

    因為程序使用到了Pygame包,如果虛擬環境沒有的話,需要安裝一下:pip install pygame

    最終我們運行起來了貪吃蛇游戲:

    基于 Qwen2.5-Coder 和 CrewAI 框架,實現智能編程系統的實戰教程貪吃蛇游戲

    至此,本次我們需求基本完成了,我們通過定義的 3 個智能體和對應的任務,最終智能體與Qwen2.5-Coder交互完成軟件需求程序的編寫。

    程序最終還能跑起來,這也進一步體現了Qwen2.5-Coder模型的語音和代碼推理能力!


    往期推薦文章:

    vLLM CPU 和 GPU 模式署和推理 Qwen2 等大語言模型詳細教程

    基于 Qwen2/Lllama3 等大模型,部署團隊私有化 RAG 知識庫系統的詳細教程(Docker+AnythingLLM)

    使用 Llama3/Qwen2 等開源大模型,部署團隊私有化 Code Copilot 和使用教程

    基于 Qwen2 大模型微調技術詳細教程(LoRA 參數高效微調和 SwanLab 可視化監控)

    ChatTTS 長音頻合成和本地部署 2 種方式,讓你的“兒童繪本”發聲的實戰教程

    MiniCPM-V 2.6 面壁“小鋼炮”,多圖、視頻理解多模態模型,部署和推理實戰教程

    微信公眾號:老牛同學

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 免费A级毛片樱桃视频| 国产精品亚洲二区亚瑟| 福利视频在线一区二区| 亚洲乱理伦片在线观看中字| 欧美黑人XXXX性高清版| 激情综合色综合啪啪开心| 一本大道久久东京热AV| 中文字幕无码AV激情不卡| 在国产线视频A在线视频| 免费久久人人爽人人爽AV| 亚洲爆乳WWW无码专区| 天天夜碰日日摸日日澡性色AV| 亚洲天堂精品一区二区| 亚洲国产精品自产在线播放| 人妻蜜臀久久av不卡| 狠狠噜天天噜日日噜| 亚洲中文字幕日产无码成人片| 日韩亚洲AV人人夜夜澡人人爽| 国产小受被做到哭咬床单GV| 欧美伊人久久大香线蕉综合| 国产成人无码A区在线观| 无码日韩精品一区二区三区免费| 国产好大好硬好爽免费不卡 | 久久婷婷五月综合尤物色国产| 国厂精品114福利电影免费| 天天在线看无码AV片| 天下第二社区在线视频| 少妇人妻偷人偷人精品| 国产乱码卡二卡三卡4| 久久天堂综合亚洲伊人HD妓女| 成人国产精品中文字幕| 国产白嫩护士被弄高潮| 日日躁狠狠躁狠狠爱| 亚洲一区二区精品极品| 美女裸体无遮挡免费视频网站| 欧美性XXXX极品HD欧美风情| 免费A级毛片樱桃视频| 欧美乱妇高清无乱码免费| 亚洲精品无码永久在线观看你懂的| 夜鲁鲁鲁夜夜综合视频| 二区中文字幕在线观看|