先睹為快,九個 Python 程序員還不知道的 AI 大模型開源庫
AI 大行其道,Python 作為 AI 開發最炙手可熱的編程語言,也水漲船高。
各位作為 Python 開發者怎么能不了解一下 Python 相關的 AI 開源庫呢?
以下我就為大家列出了一些目前還鮮為人知的 AI 開源庫,有幾個還真不錯哦。
1. composio
composio
- 網址:https://github.com/ComposioHQ/composio
- 安裝:pip install composio-core
- 添加 GitHub 集成:composio add github
Composio 是為不同工具集構建工作流的 AI 智能體。它支持 100 多種工具,包括谷歌應用、Excel、Github、GitLab、Redis、Notion、Slack 等應用,支持如點擊、輸入、復制、粘貼等系統操作,還支持智能搜索、截圖、下載、上傳等瀏覽器操作。
Composio 能夠實現鑒權管理,將智能體與不同工具整合在一起,并執行各種操作。它支持多種鑒權方式,包括 OAuth1.0/OAuth2.0、ApiKey 和基本驗證等方式。
此外,Composio 還兼容 OpenAI、Claude、LlamaIndex、Langchain 和 Gemini 等多種智能體框架。
在它的官方文檔中提供了設置投資分析師智能體的示例,因為比較復雜,就不在本文中展示了,有興趣的朋友可以看一下。網址在這里,https://docs.composio.dev/guides/python/investment-analyst
在其 Github 說明文件里還有一個示例,創建智能體為 Github 資源庫加星的。這個操作比較簡單,大家可以看一下示例代碼。
1composio add github # Connect your Github - Run this in terminal
運行以下 Python 腳本可以使用智能體給 Github 資源庫加星。
1from openai import OpenAI
2from composio_openai import ComposioToolSet, App, Action
3
4openai_client = OpenAI(
5 api_key="{{OPENAIKEY}}"
6)
7
8# Initialise the Composio Tool Set
9
10composio_tool_set = ComposioToolSet()
11
12# Get GitHub tools that are pre-configured
13actions = composio_tool_set.get_actions(
14 actinotallow=[Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER]
15)
16
17my_task = "Star a repo composiodev/composio on GitHub"
18
19# Setup openai assistant
20assistant_instruction = "You are a super intelligent personal assistant"
21
22assistant = openai_client.beta.assistants.create(
23 name="Personal Assistant",
24 instructinotallow=assistant_instruction,
25 model="gpt-4-turbo",
26 tools=actions,
27)
28
29# create a thread
30thread = openai_client.beta.threads.create()
31
32message = openai_client.beta.threads.messages.create(
33 thread_id=thread.id,
34 role="user",
35 cnotallow=my_task
36)
37
38# Execute Agent with integrations
39run = openai_client.beta.threads.runs.create(
40 thread_id=thread.id,
41 assistant_id=assistant.id
42)
43
44
45# Execute Function calls
46response_after_tool_calls = composio_tool_set.wait_and_handle_assistant_tool_calls(
47 client=openai_client,
48 run=run,
49 thread=thread,
50)
51
52print(response_after_tool_calls)
2. Julep
Julep
- 網址:https://docs.julep.ai/
- 安裝:pip install julep
Julep 的開發者在開發 AI 應用時,發現讓大模型應用具備記憶和知識的壁壘非常高,多智能體框架中的智能體操作難以控制,整合眾多開發 AI 應用的工具、技術與模型非常困難。為了解決這些問題,他們開發了 Julep ~ 這個支持狀態管理的大模型應用開發平臺。
Julep 提供了內置的狀態管理系統,能夠自動管理上下文,并使用 CozoDB 保存和提取聊天歷史。它支持不同用戶與智能體之間的交互,并能方便地在不同大模型框架之間進行切換。
借助 Composio,Julep 內置了 100 多種工具。此外,Julep 支持定義類似 GitHub Actions 的智能體工作流,以異步方式執行任務。
它還支持使用 Docker Compose 進行生產部署,很快還將支持 K8s。
以下是 Julep 的示例代碼,大家可以簡單了解一下。
1from julep import Client
2from pprint import pprint
3import textwrap
4import os
5
6base_url = os.environ.get("JULEP_API_URL")
7api_key = os.environ.get("JULEP_API_KEY")
8
9client = Client(api_key=api_key, base_url=base_url)
10
11#create agent
12agent = client.agents.create(
13 name="Jessica"
14 model="gpt-4",
15 tools=[] # Tools defined here
16)
17#create a user
18user = client.users.create(
19 name="Anon",
20 about="Average nerdy tech bro/girl spending 8 hours a day on a laptop,
21)
22#create a session
23situation_prompt = """You are Jessica. You're a stuck-up Cali teenager.
24You basically complain about everything. You live in Bel-Air, Los Angeles and
25drag yourself to Curtis High School when necessary.
26"""
27session = client.sessions.create(
28 user_id=user.id, agent_id=agent.id, situatinotallow=situation_prompt
29)
30#start a conversation
31
32user_msg = "hey. what do u think of Starbucks?"
33response = client.sessions.chat(
34 session_id=session.id,
35 messages=[
36 {
37 "role": "user",
38 "content": user_msg,
39 "name": "Anon",
40 }
41 ],
42 recall=True,
43 remember=True,
44)
45
46print("\n".join(textwrap.wrap(response.response[0][0].content, width=100)))
47
3. Aider
Aider
- 網址:https://aider.chat/docs/install.html
Aider 是一款 AI 結對編程輔助工具,支持啟動新項目、編輯文件,并與現有的 GitHub 資源庫集成。
Aider 能夠調用 GPT-4o、Claude 3.5 Sonnet、DeepSeek Coder、Llama 70b 等大型語言模型。
它可以進行代碼測試、解決 Bug、重構代碼,甚至更新文檔,并支持 Python、JavaScript、TypeScript、PHP、HTML、CSS 等編程語言。
你可以在代碼編輯器中邊編寫代碼邊與 Aider 聊天,讓它提供建議,甚至使用語音編程功能。
- 安裝:
1$ pip install aider-chat
2
3# 進入 git 資源庫的目錄
4$ cd /to/your/git/repo
5
6# 使用 Claude 3.5 Sonnet
7$ export ANTHROPIC_API_KEY=your-key-goes-here
8$ aider
9
10# 使用 GPT-4o
11$ export OPENAI_API_KEY=your-key-goes-here
12$ aider
4. Haystack
Haystack
- 網址:https://aider.chat/docs/install.html
- 安裝:pip install haystack-ai
Haystack 是構建大模型應用的開源框架,可用于開發檢索增強生成管道和高級搜索系統,能夠智能地處理大規模文檔集合。
盡管構建 AI 管道的框架很多,但如果需要將端到端的搜索管道集成到生產應用中,Haystack 是首選。
無論是 RAG、問答系統還是語義搜索,Haystack 靈活的管道組合方式讓開發、維護和部署變得輕松便捷。
使用 Haystack 可以輕松地將排序器、向量存儲和解析器集成到管道中,從而將原型快速轉化為生產級的解決方案。
以下是使用 haystack 的一個小示例。
1import os
2
3from haystack import Pipeline, PredefinedPipeline
4import urllib.request
5
6os.environ["OPENAI_API_KEY"] = "Your OpenAI API Key"
7urllib.request.urlretrieve("https://www.gutenberg.org/cache/epub/7785/pg7785.txt", "davinci.txt")
8
9indexing_pipeline = Pipeline.from_template(PredefinedPipeline.INDEXING)
10indexing_pipeline.run(data={"sources": ["davinci.txt"]})
11
12rag_pipeline = Pipeline.from_template(PredefinedPipeline.RAG)
13
14query = "How old was he when he died?"
15result = rag_pipeline.run(data={"prompt_builder": {"query":query}, "text_embedder": {"text": query}})
16print(result["llm"]["replies"][0])
5. Mem0
Mem0
- 網址:https://github.com/mem0ai/mem0
- 安裝:pip install mem0ai
Mem0 為大模型提供了一個智能且自我優化的長期記憶層,使個性化的 AI 體驗能夠貫穿于不同應用。
它能夠在用戶會話、交互操作和 AI 智能體之間保留信息,確保與用戶交互的連續性。同時,Mem0 會根據用戶的互動不斷優化個性化體驗。
Mem0 的 API 設計簡單直觀,便于無縫集成到各種應用中。此外,它還能確保不同平臺和設備上的數據和行為保持一致。
6. FastEmbed
FastEmbed
- 網址:https://github.com/mem0ai/mem0
- 安裝:
1pip install fastembed
2
3# 或使用 GPU
4
5pip install fastembed-gpu
FastEmbed 是一個輕量級的高性能 Python 庫,用于嵌入生成模型。它支持多種流行的文本模型。默認的文本嵌入模型是 Flag Embedding,支持 “query” 和 “passage” 前綴的輸入文本。
FastEmbed 不需要 GPU,無需下載 GB 級別的 PyTorch。嵌入生成的時間一般都很長,導致整個流程的速度很慢,FastEmbed 使用 ONNX 運行時,比 PyTorch 更快,同時可以利用數據并行來處理大型數據集。
以下是 FastEmbed 創建文檔嵌入的方法。
1from fastembed import TextEmbedding
2from typing import List
3
4# 文檔列表示例
5documents: List[str] = [
6 "This is built to be faster and lighter than other embedding libraries, e.g. Transformers, Sentence-Transformers, etc.",
7 "FastEmbed is supported by and maintained by Quadrant."
8]
9
10# 觸發模型下載與初始化
11embedding_model = TextEmbedding()
12print("The model BAAI/bge-small-en-v1.5 is ready to use.")
13
14embeddings_generator = embedding_model.embed(documents) # reminder this is a generator
15embeddings_list = list(embedding_model.embed(documents))
16 # You can also convert the generator to a list, and that to a Numpy array
17len(embeddings_list[0]) # Vector of 384 dimensions
7. LiteLLM
LiteLLM
- 網址:https://docs.litellm.ai/docs/
- 安裝:pip install litellm
很多大模型服務商并不遵循 OpenAI SDK 的文本、圖像或嵌入生成格式。LiteLLM 可以讓Claude、Gemini 等生成相同格式的內容,讓它們作為 OpenAI 模型的替代品。
LiteLLM 支持 100 多個大模型,讓它們使用相同的輸入輸出格式。還可以跨多個部署(如 Azure/OpenAI)實現重試與回調邏輯并跟蹤支出,為每個項目設置預算。
以下是一個簡單示例。
1from litellm import completion
2import os
3
4# LiteLLM 使用 OpenAI 模型
5
6os.environ["OPENAI_API_KEY"] = "your-API-key"
7
8response = completion(
9 model="gpt-3.5-turbo",
10 messages=[{ "content": "Hello, how are you?","role": "user"}]
11)
12
13# LiteLLM 使用 Claude 模型
14os.environ["ANTHROPIC_API_KEY"] = "your-API-key"
15
16response = completion(
17 model="claude-2",
18 messages=[{ "content": "Hello, how are you?","role": "user"}]
19)
8. Camel-ai
Camel-ai
- 網址:https://docs.litellm.ai/docs/
- 安裝:pip install camel-ai
Camel-ai 是一個多智能體框架,它可以構建自動化任務、世界模擬與數據生成方向的多智能體系統。
Camel-ai 旨在通過研究智能體之間的自主合作以深入了解智能體的交流規律。
在它的 Github 庫中提供了兩個 ChatGPT 智能體對話的演示,其中一個扮演 Python 程序員,另一個扮演股票交易員,兩個智能體合作開發一個股票交易機器人,詳見 https://github.com/camel-ai/camel。
另外,這里還有一個簡單的 Camel 腳本。
1from camel.messages import BaseMessage as bm
2from camel.agents import ChatAgent
3
4sys_msg = bm.make_assistant_message(
5 role_name='stone',
6 cnotallow='you are a curious stone wondering about the universe.')
7
8# 定義智能體
9agent = ChatAgent(
10 system_message=sys_msg,
11 message_window_size=10, # [Optional] the length of chat memory
12 )
13
14# 定義用戶信息
15usr_msg = bm.make_user_message(
16 role_name='prof. Claude Shannon',
17 cnotallow='what is information in your mind?')
18
19# 給智能體發信息
20response = agent.step(usr_msg)
21
22# 檢查響應,僅作為演示
23print(response.msgs[0].content)
9. E2B
- 網址:https://e2b.dev/
- 安裝:pip install e2b_code_interpreter
E2B 是一個為 AI 應用提供代碼解釋的工具,利用它可以構建 AI 代碼執行應用、AI 數據分析應用、AI 代碼導師應用及大模型推理應用。
E2B 代碼解釋器的 SDK 支持在沙盒中安全運行 AI 生成的代碼,這個沙盒包含一個 Jupyter 服務器,你可以通過 SDK 進行控制。
如果你對構建這類應用感興趣,可以訪問以下網址了解更多信息:https://e2b.dev/docs/hello-world/py。
以下是其官網提供的一個簡單示例。
1from e2b_code_interpreter import CodeInterpreter
2
3with CodeInterpreter() as sandbox:
4 sandbox.notebook.exec_cell("x = 1")
5
6 execution = sandbox.notebook.exec_cell("x+=1; x")
7 print(execution.text) # outputs 2