国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
基于 Qwen2.5

9 月 19 日,阿里開源了 Qwen2.5 系列大模型全家桶:除常規(guī)的語(yǔ)言模型 Qwen2.5 之外,還發(fā)布了專門針對(duì)編程的Qwen2.5-Coder模型和數(shù)學(xué)的 Qwen2.5-Math 模型,并且針對(duì)每個(gè)模型都提供了不同規(guī)模參數(shù)版本,包括:

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

Qwen2.5 系列模型性能和推理能力對(duì)比,老牛同學(xué)不在贅述,我們可以到 Qwen 官網(wǎng)博客查看詳細(xì)介紹:https://qwenlm.github.io/zh/blog/qwen2.5/

在國(guó)內(nèi)開源大模型中,老牛同學(xué)用遙遙領(lǐng)先做為 Qwen2.5 模型系列總結(jié)一點(diǎn)也不為過(guò),國(guó)內(nèi)開源大模型能真打的實(shí)在是太少了!

老牛同學(xué)對(duì)Qwen2.5-Coder比較感興趣,可能是老牛同學(xué)專業(yè)的原因,非常期待能有一個(gè)智能編程的模型或應(yīng)用,真所謂:碼無(wú)止境,學(xué)無(wú)止境!

模型能力比對(duì)

今天,老牛同學(xué)就基于Qwen2.5-Coder模型,結(jié)合CrewAI多智能體框架,實(shí)現(xiàn)一個(gè)能根據(jù)軟件需求編寫程序代碼的系統(tǒng),同時(shí)感受一下Qwen2.5-Coder的能力。因此本文大致分為以下三部分:

  • Qwen2.5-Coder本地部署和簡(jiǎn)單驗(yàn)證
  • CrewAI多智能體設(shè)計(jì)、和基于Qwen2.5-Coder的實(shí)現(xiàn)代碼
  • 最終,驗(yàn)證CrewAI智能體編寫的程序

Qwen2.5-Coder 本地部署

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

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

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

ollama run qwen2.5-coder:7b

下載和部署成功之后,Ollama默認(rèn)自帶了一個(gè)終端對(duì)話窗口:

Ollama下載和部署

至此,Qwen2.5-Coder模型本地部署就成功了,接下來(lái)我們來(lái)實(shí)現(xiàn)多智能體代碼邏輯~

CrewAI 多智能體設(shè)計(jì)和實(shí)現(xiàn)

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

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

# Python虛擬環(huán)境名:CrewAI,版本號(hào):3.10
conda create -n CrewAI python=3.10 -y


# 激活虛擬環(huán)境
conda activate CrewAI


# 安裝 CrewAI 框架依賴
pip install crewai

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

  • 軟件工程師:負(fù)責(zé)根據(jù)需求編寫程序代碼
  • 質(zhì)量工程師:發(fā)現(xiàn)并修復(fù)軟件工程師的代碼 Bug 和錯(cuò)誤
  • 首席質(zhì)量工程師:檢測(cè)程序完整性,并檢測(cè)是否符合軟件需求

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

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 個(gè)角色(即:3 個(gè)智能體)】

3 個(gè)智能體分別是:高級(jí)軟件工程師、高級(jí)質(zhì)量工程師和首席質(zhì)量工程師

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

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

與 3 個(gè)智能體對(duì)應(yīng),每個(gè)智能體均對(duì)應(yīng)有 1 個(gè)任務(wù):

#
# 3個(gè)任務(wù)邏輯
#


def code_task(agent, game):
	return Task(description=dedent(f'''你將按照軟件需求,使用Python編寫程序:


		軟件需求
		------------
		{game}
		'''),
		expected_output='你的輸出是完整的Python代碼, 特別注意只需要輸出Python代碼,不要輸出其他任何內(nèi)容!',
		agent=agent
	)


def review_task(agent, game):
	return Task(description=dedent(f'''你將按照軟件需求,進(jìn)一步使用Python完善給定的程序:


		軟件需求
		------------
		{game}


		根據(jù)給定的Python程序代碼,檢查其中的錯(cuò)誤。包括檢查邏輯錯(cuò)誤語(yǔ)法錯(cuò)誤、缺少導(dǎo)入、變量聲明、括號(hào)不匹配,以及安全漏洞。
		'''),
		expected_output='你的輸出是完整的Python代碼, 特別注意只需要輸出Python代碼,不要輸出其他任何內(nèi)容!',
		agent=agent
	)


def evaluate_task(agent, game):
	return Task(description=dedent(f'''你將按照軟件需求,進(jìn)一步使用Python完善給定的程序:


		軟件需求
		------------
		{game}


		查看給定的Python程序代碼,確保程序代碼完整,并且符合軟件需求。
		'''),
		expected_output='你的輸出是完整的Python代碼, 特別注意只需要輸出Python代碼,不要輸出其他任何內(nèi)容!',
		agent=agent
	)

【第四步:定義團(tuán)隊(duì),組織智能體協(xié)同執(zhí)行任務(wù)】

CrewAI中,Crew代表團(tuán)隊(duì),它有agentstasks這 2 個(gè)核心屬性,最終通過(guò)kickoff()方法觸發(fā)執(zhí)行整個(gè)流程:

# # 團(tuán)隊(duì)邏輯 # print('') game = input('# 您好,我們是游戲智能編程團(tuán)隊(duì),請(qǐng)輸入游戲的詳細(xì)描述:\n\n') print('') # 智能體 senior_engineer_agent = senior_engineer_agent() qa_engineer_agent = qa_engineer_agent() chief_qa_engineer_agent = chief_qa_engineer_agent() # 任務(wù) 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) # 團(tuán)隊(duì) crew = Crew( agents=[ senior_engineer_agent, qa_engineer_agent, chief_qa_engineer_agent ], tasks=[ code_game, review_game, approve_game ], verbose=True ) # 執(zhí)行 game_code = crew.kickoff()

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

# 輸出
print('\n\n########################')
print('## 游戲代碼結(jié)果')
print('########################\n')
print(game_code)


# 存儲(chǔ)代碼
filename = 'Game.py'


print('\n\n########################\n')
with open(filename, 'w', encoding='utf-8') as file:
    file.write(game_code)


print(f'游戲代碼已經(jīng)存儲(chǔ)到文件: {filename}')
print(f'你可以運(yùn)行游戲:python {filename}')

以上步驟即完成了我們只能編程團(tuán)隊(duì)代碼,接下就可以執(zhí)行了:python CrewAI-Game.py

CrewAI 執(zhí)行過(guò)程中,我們看到 3 個(gè)智能體執(zhí)行詳細(xì)信息:

  • 軟件工程師執(zhí)行過(guò)程信息
  • 質(zhì)量工程師執(zhí)行過(guò)程信息
  • 首席工程師執(zhí)行過(guò)程信息

最后,我們運(yùn)行本地存儲(chǔ)的小游戲程序:python Game.py

因?yàn)槌绦蚴褂玫搅?/span>Pygame包,如果虛擬環(huán)境沒(méi)有的話,需要安裝一下:pip install pygame

最終我們運(yùn)行起來(lái)了貪吃蛇游戲:

貪吃蛇游戲

至此,本次我們需求基本完成了,我們通過(guò)定義的 3 個(gè)智能體和對(duì)應(yīng)的任務(wù),最終智能體與Qwen2.5-Coder交互完成軟件需求程序的編寫。

程序最終還能跑起來(lái),這也進(jìn)一步體現(xiàn)了Qwen2.5-Coder模型的語(yǔ)音和代碼推理能力!


往期推薦文章:

vLLM CPU 和 GPU 模式署和推理 Qwen2 等大語(yǔ)言模型詳細(xì)教程

基于 Qwen2/Lllama3 等大模型,部署團(tuán)隊(duì)私有化 RAG 知識(shí)庫(kù)系統(tǒng)的詳細(xì)教程(Docker+AnythingLLM)

使用 Llama3/Qwen2 等開源大模型,部署團(tuán)隊(duì)私有化 Code Copilot 和使用教程

基于 Qwen2 大模型微調(diào)技術(shù)詳細(xì)教程(LoRA 參數(shù)高效微調(diào)和 SwanLab 可視化監(jiān)控)

ChatTTS 長(zhǎng)音頻合成和本地部署 2 種方式,讓你的“兒童繪本”發(fā)聲的實(shí)戰(zhàn)教程

MiniCPM-V 2.6 面壁“小鋼炮”,多圖、視頻理解多模態(tài)模型,部署和推理實(shí)戰(zhàn)教程

微信公眾號(hào):老牛同學(xué)
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Qwen-Agent:Qwen2加持,強(qiáng)大的多代理框架 - 函數(shù)調(diào)用、代碼解釋器以及 RAG!
基于CrewAI和Ollama開發(fā)文章寫作多智能體系統(tǒng)實(shí)戰(zhàn)
大模型最新情報(bào)
輸入示例,自動(dòng)生成代碼:TensorFlow官方工具TF-Coder已開源
第0期:psychopy coder入門
一文看懂Python系列之裝飾器(decorator)(工作面試必讀)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服