paint-brush
이 13개의 숨겨진 오픈 소스 라이브러리는 당신이 AI 마법사가 되는 데 도움이 될 것입니다 🧙‍♂️🪄 ~에 의해@sunilkumardash9
4,656 판독값
4,656 판독값

이 13개의 숨겨진 오픈 소스 라이브러리는 당신이 AI 마법사가 되는 데 도움이 될 것입니다 🧙‍♂️🪄

~에 의해 Sunil Kumar Dash14m2024/07/27
Read on Terminal Reader

너무 오래; 읽다

저는 지난 4년 동안 AI 애플리케이션을 구축해 왔으며 한동안 주요 AI 툴링 플랫폼에 기여해 왔습니다. 저는 강력하고 안정적인 AI 애플리케이션을 만드는 데 도움이 되는 오픈 소스 도구 및 프레임워크 목록을 선별했습니다. Composio를 사용하면 강력한 도구와 통합으로 AI 에이전트를 강화하여 AI 워크플로를 달성할 수 있습니다.
featured image - 이 13개의 숨겨진 오픈 소스 라이브러리는 당신이 AI 마법사가 되는 데 도움이 될 것입니다 🧙‍♂️🪄
Sunil Kumar Dash HackerNoon profile picture

저는 지난 4년 동안 AI 애플리케이션을 구축해 왔으며 한동안 주요 AI 툴링 플랫폼에 기여해 왔습니다.


이 기간 동안 저는 구축을 위해 많은 도구와 프레임워크를 사용해 왔습니다.

  • 현실 세계에서 실제로 일하는 AI 에이전트.
  • AI 에이전트를 위한 도구.
  • 엔드투엔드 RAG 애플리케이션.


저는 강력하고 안정적인 AI 애플리케이션을 만드는 데 도움이 되는 오픈 소스 도구 및 프레임워크 목록을 선별했습니다. 🔥
해리 포터

GitHub 리포지토리를 자유롭게 탐색하고, 즐겨찾는 항목에 기여하고, 리포지토리에 별표를 표시하여 지원하세요.


1. Composio 💗 - 10배 더 빠르게 신뢰할 수 있는 에이전트 구축

나는 많은 에이전트를 구축해 보았으며 솔직히 에이전트를 생성하는 것은 쉽지만 올바르게 구축하는 것은 완전히 다른 게임입니다.

실제로 작동하는 효율적인 AI 에이전트를 구축하려면 효율적인 도구 세트가 필요합니다. 이것이 Composio가 등장하는 곳입니다.


Composio를 사용하면 AI 워크플로를 달성하기 위한 강력한 도구와 통합으로 AI 에이전트를 강화할 수 있습니다.


Python 및 Javascript에 대한 기본 지원을 제공합니다.

파이썬

다음 pip 명령을 시작해보세요.

 pip install composio-core


GitHub 통합을 추가합니다.

 composio add github


Composio는 귀하를 대신하여 사용자 인증 및 승인을 처리합니다. GitHub 통합을 사용하여 리포지토리를 시작하는 방법은 다음과 같습니다.

 from openai import OpenAI from composio_openai import ComposioToolSet, App openai_client = OpenAI(api_key="******OPENAIKEY******") # Initialise the Composio Tool Set composio_toolset = ComposioToolSet(api_key="**\\*\\***COMPOSIO_API_KEY**\\*\\***") ## Step 4 # Get GitHub tools that are pre-configured actions = composio_toolset.get_actions(actions=[Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER]) ## Step 5 my_task = "Star a repo ComposioHQ/composio on GitHub" # Create a chat completion request to decide on the action response = openai_client.chat.completions.create( model="gpt-4-turbo", tools=actions, # Passing actions we fetched earlier. messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": my_task} ] )


이 Python 스크립트를 실행하여 에이전트를 사용하여 지정된 명령을 실행하세요.

자바스크립트

npm , yarn 또는 pnpm 사용하여 설치할 수 있습니다.

 npm install composio-core


사용자가 GitHub 계정을 연결할 수 있는 방법을 정의합니다.

 import { OpenAI } from "openai"; import { OpenAIToolSet } from "composio-core"; const toolset = new OpenAIToolSet({ apiKey: process.env.COMPOSIO_API_KEY, }); async function setupUserConnectionIfNotExists(entityId) { const entity = await toolset.client.getEntity(entityId); const connection = await entity.getConnection('github'); if (!connection) { // If this entity/user hasn't already connected, the account const connection = await entity.initiateConnection(appName); console.log("Log in via: ", connection.redirectUrl); return connection.waitUntilActive(60); } return connection; }


OpenAI SDK에 필요한 도구를 추가하고 엔터티 이름을 executeAgent 함수에 전달합니다.

 async function executeAgent(entityName) { const entity = await toolset.client.getEntity(entityName) await setupUserConnectionIfNotExists(entity.id); const tools = await toolset.get_actions({ actions: ["github_activity_star_repo_for_authenticated_user"] }, entity.id); const instruction = "Star a repo ComposioHQ/composio on GitHub" const client = new OpenAI({ apiKey: process.env.OPEN_AI_API_KEY }) const response = await client.chat.completions.create({ model: "gpt-4-turbo", messages: [{ role: "user", content: instruction, }], tools: tools, tool_choice: "auto", }) console.log(response.choices[0].message.tool_calls); await toolset.handle_tool_call(response, entity.id); } executeGithubAgent("joey")

코드를 실행하고 에이전트가 작업을 수행하도록 하세요.


Composio는 LangChain, LlamaIndex, CrewAi 등과 같은 유명한 프레임워크와 작동합니다.


자세한 내용을 보려면 공식 문서를 방문하고, 복잡한 예제도 보려면 저장소의 예제 섹션을 방문하세요.

작곡

Composio.dev 저장소에 별표를 표시하세요 ⭐


2. Julep - 상태 저장 에이전트 구축을 위한 프레임워크

AI 애플리케이션, 특히 장기 기억이 필요한 애플리케이션을 개발하는 데는 상당한 어려움이 따릅니다.


Julep은 이 문제를 해결하고 있습니다. 프로덕션에 즉시 사용 가능한 상태 저장 AI 에이전트를 구축하기 위한 오픈 소스 프레임워크입니다.


효율적인 컨텍스트 저장 및 검색에 도움이 되는 내장 상태 관리 시스템을 제공합니다.


컨텍스트 스토리지는 대화의 연속성을 유지하는 데 도움이 되어 AI와의 상호 작용이 시간이 지나도 일관성 있고 상황에 맞는 관련성을 유지하도록 보장합니다.


다음 pip 명령을 시작해보세요.

 pip install julep


작동 방식은 다음과 같습니다.

 from julep import Client from pprint import pprint import textwrap import os base_url = os.environ.get("JULEP_API_URL") api_key = os.environ.get("JULEP_API_KEY") client = Client(api_key=api_key, base_url=base_url) #create agent agent = client.agents.create( name="Jessica" model="gpt-4", tools=[] # Tools defined here ) #create a user user = client.users.create( name="Anon", about="Average nerdy tech bro/girl spending 8 hours a day on a laptop, ) #create a session situation_prompt = """You are Jessica. You're a stuck-up Cali teenager. You basically complain about everything. You live in Bel-Air, Los Angeles and drag yourself to Curtis High School when necessary. """ session = client.sessions.create( user_id=user.id, agent_id=agent.id, situation=situation_prompt ) #start a conversation user_msg = "hey. what do u think of Starbucks?" response = client.sessions.chat( session_id=session.id, messages=[ { "role": "user", "content": user_msg, "name": "Anon", } ], recall=True, remember=True, ) print("\n".join(textwrap.wrap(response.response[0][0].content, width=100)))

또한 Javascript도 지원합니다. 자세한 내용은 해당 설명서를 확인하세요.

줄렙

Julep 저장소에 별표를 표시하세요 ⭐


3. E2B - AI 앱을 위한 코드 해석

AI 교사나 AI 데이터 분석가와 같이 코드 실행 기능이 있는 AI 앱을 구축하는 경우 E2B의 코드 해석기가 제가 선호하는 도구가 될 것입니다.

E2B Sandbox는 AI 에이전트와 앱을 위한 안전한 클라우드 환경입니다.


이를 통해 AI는 GitHub 리포지토리, 클라우드 브라우저 등 인간과 동일한 도구를 사용하여 장기간 안전하게 실행할 수 있습니다.


Python 및 Javascript/Typescript용 기본 코드 해석기 SDK를 제공합니다.


Code Interpreter SDK를 사용하면 AI 코드 실행을 위해 안전한 소형 VM( E2B 샌드박스 )에서 AI 생성 코드를 실행할 수 있습니다. 샌드박스 내부에는 SDK에서 제어할 수 있는 Jupyter 서버가 있습니다.


다음 명령을 사용하여 E2B를 시작하세요.

 npm i @e2b/code-interpreter


프로그램을 실행합니다.

 import { CodeInterpreter } from '@e2b/code-interpreter' const sandbox = await CodeInterpreter.create() await sandbox.notebook.execCell('x = 1') const execution = await sandbox.notebook.execCell('x+=1; x') console.log(execution.text) // outputs 2 await sandbox.close()


E2B 작업 방법에 대한 자세한 내용은 공식 문서를 참조하세요.
e2b

E2B 저장소에 별표를 표시하세요 ⭐


4. Camel-ai - 의사소통 가능한 AI 시스템 구축

확장 가능한 다중 에이전트 협업 시스템을 해결하면 AI 애플리케이션 구축에 있어 많은 잠재력을 발휘할 수 있습니다.


낙타는 이에 대해 좋은 위치에 있습니다. 이는 다중 에이전트 시스템의 협력적 행동 및 기능을 연구하기 위한 확장 가능한 접근 방식을 제공하는 오픈 소스 프레임워크입니다.


다중 에이전트 시스템을 구축하려는 경우 Camel은 오픈 소스 장면에서 사용할 수 있는 최고의 선택 중 하나가 될 수 있습니다.


pip 로 설치하여 시작하세요.

 pip install camel-ai


Camel을 사용하는 방법은 다음과 같습니다.

 from camel.messages import BaseMessage as bm from camel.agents import ChatAgent sys_msg = bm.make_assistant_message( role_name='stone', content='you are a curious stone wondering about the universe.') #define agent agent = ChatAgent( system_message=sys_msg, message_window_size=10, # [Optional] the length of chat memory ) # Define a user message usr_msg = bm.make_user_message( role_name='prof. Claude Shannon', content='what is information in your mind?') # Sending the message to the agent response = agent.step(usr_msg) # Check the response (just for illustrative purposes) print(response.msgs[0].content)

짜잔, 첫 번째 AI 에이전트가 생겼습니다.


자세한 내용은 해당 공식 문서를 참조하세요.
카멜라이

Camel-ai 저장소에 별표를 표시하세요 ⭐


5. CopilotKit - React 앱용 AI Copilot 구축

기존 React 애플리케이션에 AI 기능을 포함하고 싶다면 더 이상 찾지 마세요. CopilotKit을 사용하면 GPT 모델을 사용하여 애플리케이션의 프런트엔드 및 백엔드와의 상호 작용을 자동화할 수 있습니다.


이는 애플리케이션이나 액세스할 수 있는 모든 코드(OSS)와 통합할 수 있는 기성 Copilot입니다.


텍스트 영역, 팝업, 사이드바, 챗봇과 같은 React 구성 요소를 제공하여 AI 기능으로 모든 애플리케이션을 강화합니다.


다음 명령을 사용하여 CopilotKit을 시작하세요.

 npm i @copilotkit/react-core @copilotkit/react-ui


CopilotKit CopilotKit과 상호 작용하는 모든 구성 요소를 래핑해야 합니다. 또한 CopilotSidebar 로 시작해야 합니다(나중에 다른 UI 공급자로 교체).

 "use client"; import { CopilotKit } from "@copilotkit/react-core"; import { CopilotSidebar } from "@copilotkit/react-ui"; import "@copilotkit/react-ui/styles.css"; export default function RootLayout({children}) { return ( <CopilotKit publicApiKey=" the API key or self-host (see below)"> <CopilotSidebar> {children} </CopilotSidebar> </CopilotKit> ); }

자세한 내용은 해당 설명서를 확인하세요.


부조종사 키트
CopilotKit 저장소에 별표를 표시하세요 ⭐


6. Aider - AI 페어 프로그래머

항상 도움이 되고 결코 짜증나지 않는 짝 프로그래머가 있다고 상상해 보세요. 이제 그렇습니다!


Aider는 터미널에서 프로젝트를 시작하고, 파일을 편집하고, 기존 Git 저장소 등을 사용하여 작업할 수 있는 AI 기반 쌍 프로그래머입니다.

GPT4o, Sonnet 3.5, DeepSeek Coder, Llama 70b 등과 같은 주요 LLM과 함께 작동합니다.


다음과 같이 빠르게 시작할 수 있습니다.

 pip install aider-chat # Change directory into a git repo cd /to/your/git/repo # Work with Claude 3.5 Sonnet on your repo export ANTHROPIC_API_KEY=your-key-goes-here aider # Work with GPT-4o on your repo export OPENAI_API_KEY=your-key-goes-here aider

자세한 내용은 설치 지침 및 기타 설명서를 참조하세요.

보조원

Aider 저장소에 별표를 표시하세요 ⭐


7. Haystack - 구성 가능한 RAG 파이프라인 구축

AI 파이프라인을 구축하기 위한 프레임워크는 많지만, 프로덕션 준비가 완료된 엔드투엔드 검색 파이프라인을 내 애플리케이션에 통합하려면 Haystack을 선택합니다.


RAG, Q&A, 의미 검색 등 Haystack의 고도로 구성 가능한 파이프라인을 사용하면 개발, 유지 관리 및 배포가 쉬워집니다.


깔끔하고 모듈화된 접근 방식이 이 제품을 차별화하는 요소입니다. Haystack을 사용하면 랭커, 벡터 스토어, 파서를 새로운 파이프라인이나 기존 파이프라인에 쉽게 통합할 수 있으므로 프로토타입을 프로덕션에 바로 사용할 수 있는 솔루션으로 쉽게 전환할 수 있습니다.


Haystack은 Python 전용 프레임워크입니다. 사용하여 설치할 수 있습니다. pip .

 pip install haystack-ai


이제 Haystack 구성 요소를 사용하여 첫 번째 RAG 파이프라인을 구축해 보세요.

 import os from haystack import Pipeline, PredefinedPipeline import urllib.request os.environ["OPENAI_API_KEY"] = "Your OpenAI API Key" urllib.request.urlretrieve("https://www.gutenberg.org/cache/epub/7785/pg7785.txt", "davinci.txt") indexing_pipeline = Pipeline.from_template(PredefinedPipeline.INDEXING) indexing_pipeline.run(data={"sources": ["davinci.txt"]}) rag_pipeline = Pipeline.from_template(PredefinedPipeline.RAG) query = "How old was he when he died?" result = rag_pipeline.run(data={"prompt_builder": {"query":query}, "text_embedder": {"text": query}}) print(result["llm"]["replies"][0])


더 많은 튜토리얼과 개념을 보려면 해당 문서를 확인하세요.


커다란 건초 더미

Haystack 저장소에 별표를 표시하세요 ⭐


8. PgVectorscale - 가장 빠른 벡터 데이터베이스

최신 RAG 애플리케이션은 벡터 데이터베이스가 없으면 불완전합니다. 이는 문서(텍스트, 이미지)를 임베딩으로 저장하여 사용자가 의미상 유사한 문서를 검색할 수 있도록 합니다.


PgVectorscale은 PostgreSQL의 벡터 데이터베이스인 PgVector의 확장입니다. 기존 Postgres 데이터베이스와 원활하게 통합할 수 있습니다.


벡터 스토어를 사용하여 애플리케이션을 구축하는 경우 이는 당연한 일입니다. PgVectorscale은 Pinecone의 스토리지 최적화 인덱스(s1)보다 성능이 뛰어났습니다. 그리고 비용도 75% 더 저렴합니다.


소스에서 설치하거나 Yum, Homebrew, apt 등과 같은 패키지 관리자를 사용하거나 Docker 컨테이너를 사용할 수 있습니다.


시작하려면 컴파일하고 설치하십시오.

 # install prerequisites ## rust curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ## pgrx cargo install --locked cargo-pgrx cargo pgrx init --pg16 pg_config #download, build and install pgvectorscale cd /tmp git clone --branch <version> https://github.com/timescale/pgvectorscale cd pgvectorscale/pgvectorscale cargo pgrx install --release


데이터베이스에 연결합니다.

 psql -d "postgres://<username>:<password>@<host>:<port>/<database-name>"


pgVectorscale 확장을 만듭니다.

 CREATE EXTENSION IF NOT EXISTS vectorscale CASCADE;


CASCADE 자동으로 pgvector 설치합니다.


임베딩 열이 있는 테이블을 만듭니다. 예를 들어:

 CREATE TABLE IF NOT EXISTS document_embedding ( id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, metadata JSONB, contents TEXT, embedding VECTOR(1536) )


이를 사용하는 방법에 대한 자세한 내용은 저장소를 확인하세요.
pg벡터스케일

PgVectorscale 저장소에 별표를 표시하세요 ⭐


9. GPTCache - AI 앱을 위한 의미론적 캐싱

LLM은 비용이 많이 듭니다.


채팅 모델과 더 확장된 대화가 필요한 앱을 구축 중이고 신용 카드 한도를 초과하지 않으려는 경우 캐싱이 필요합니다.


그러나 전통적인 캐싱은 여기서는 쓸모가 없습니다. 이것이 GPTCache가 등장하는 곳입니다.


Milvus 벡터 스토어의 상위 조직인 Zilliz의 시맨틱 캐싱 도구입니다.


선호하는 벡터 저장소에 대화를 저장할 수 있습니다. LLM에 쿼리를 보내기 전에 벡터 저장소를 검색합니다. 적중이 있으면 가져옵니다. 그렇지 않으면 요청을 모델로 라우팅합니다.


자세한 내용은 공식 문서 페이지를 참조하세요.

GPTCache

GPTCache 저장소에 별표를 표시하세요 ⭐


10. Mem0(EmbedChain) - 맞춤형 LLM 앱 구축

Mem0은 대규모 언어 모델을 위한 스마트하고 자체 개선되는 메모리 계층을 제공합니다.


사용자, 에이전트 및 세션을 위한 영구 메모리를 추가할 수 있습니다. 사용자 정의 데이터에 대해 챗봇이나 Q&A 시스템을 구축하는 경우 Mem0을 고려하세요.


Mem0을 사용하여 시작하세요. pip .

 pip install mem0ai


다음은 Mem0을 사용하여 대형 언어 모델에 메모리 계층을 추가하는 방법입니다.

 from mem0 import Memory # Initialize Mem0 m = Memory() # Store a memory from any unstructured text result = m.add("I am working on improving my tennis skills. Suggest some online courses.", user_id="Alice", metadata={"category": "hobbies"}) print(result) # Created memory: Improving her tennis skills. Looking for online suggestions. # Retrieve memories all_memories = m.get_all() print(all_memories) # Search memories related_memories = m.search(query="What are Alice's hobbies?", user_id="alice") print(related_memories) # Update a memory result = m.update(memory_id="m1", data="Likes to play tennis on weekends") print(result) # Get memory history history = m.history(memory_id="m1") print(history)

자세한 내용은 공식 문서를 참조하세요.
메모리0

Mem0(Embedchain) 저장소를 시작하세요 ⭐


11. FastEmbed - 더 빠르게 문서 삽입

소프트웨어 개발에서는 실행 속도가 가장 중요하며, AI 애플리케이션을 구축할 때는 더욱 중요합니다.

일반적으로 임베딩 생성에는 시간이 오래 걸려 전체 파이프라인 속도가 느려질 수 있습니다. 그러나 이것은 사실이 아니어야 합니다.

Qdrant의 FastEmbed는 임베딩 생성을 위해 제작된 빠르고 가벼운 Python 라이브러리입니다.


Pytorch 대신 ONNX 런타임을 사용하므로 속도가 더 빨라집니다. 또한 대부분의 최첨단 오픈 소스 임베딩 모델을 지원합니다.


FastEmbed를 시작하려면 pip 사용하여 설치하세요.

 pip install fastembed # or with GPU support pip install fastembed-gpu


문서의 임베딩을 생성하는 방법은 다음과 같습니다.

 from fastembed import TextEmbedding from typing import List # Example list of documents documents: List[str] = [ "This is built to be faster and lighter than other embedding libraries, eg Transformers, Sentence-Transformers, etc.", "FastEmbed is supported by and maintained by Quadrant." ] # This will trigger the model download and initialization embedding_model = TextEmbedding() print("The model BAAI/bge-small-en-v1.5 is ready to use.") embeddings_generator = embedding_model.embed(documents) # reminder this is a generator embeddings_list = list(embedding_model.embed(documents)) # You can also convert the generator to a list, and that to a Numpy array len(embeddings_list[0]) # Vector of 384 dimensions


자세한 내용은 해당 저장소를 확인하세요.

빠른 삽입

FastEmbed 저장소에 별표를 표시하세요 ⭐


12. 강사 - LLM에서 구조화된 데이터 추출

LLM 출력을 사용해 본 적이 있다면 구조화된 응답을 검증하는 것이 어려울 수 있다는 것을 알고 계실 것입니다.


Instructor는 LLM 출력의 검증, 재시도 및 스트리밍을 간소화하는 오픈 소스 도구입니다.


데이터 검증을 위해 Python용 Pydantic과 JS/TS용 Zod를 사용하며 openAI 외에도 다양한 모델 공급자를 지원합니다.


다음 명령을 사용하여 강사를 시작하세요.

 npm i @instructor-ai/instructor zod openai


이제 LLM 응답에서 구조화된 데이터를 추출하는 방법은 다음과 같습니다.

 import Instructor from "@instructor-ai/instructor"; import OpenAI from "openai" import { z } from "zod" const oai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY ?? undefined, organization: process.env.OPENAI_ORG_ID ?? undefined }) const client = Instructor({ client: oai, mode: "TOOLS" }) const UserSchema = z.object({ // Description will be used in the prompt age: z.number().describe("The age of the user"), name: z.string() }) // User will be of type z.infer<typeof UserSchema> const user = await client.chat.completions.create({ messages: [{ role: "user", content: "Jason Liu is 30 years old" }], model: "gpt-3.5-turbo", response_model: { schema: UserSchema, name: "User" } }) console.log(user) // { age: 30, name: "Jason Liu" }

자세한 내용은 공식 문서 페이지를 참조하세요.


강사

강사 별표 표시 ⭐


13. LiteLLM - OpenAI 형식의 LLM에 대한 드롭인 대체

솔직히 말해서; 새로운 모델 제공자가 텍스트, 이미지 또는 임베딩 생성을 위해 OpenAI SDK 형식을 따르지 않기 때문에 우리 모두는 어느 시점에서 비명을 질렀습니다.


그러나 LiteLLM을 사용하면 동일한 구현 형식을 사용하여 모든 모델 공급자(Claude, Gemini, Groq, Mistral, Azure AI, Bedrock 등)를 OpenAI 모델의 드롭인 대체품으로 사용할 수 있습니다.


또한 100개가 넘는 LLM에 걸쳐 로드 밸런싱, 폴백 및 지출 추적을 지원합니다.


pip 사용하여 LiteLLM을 설치합니다.

 pip install litellm


Claude-2 모델을 GPT 모델의 드롭인 대체품으로 사용하는 방법은 다음과 같습니다.

 from litellm import completion import os # LiteLLM with OpenAI Models os.environ["OPENAI_API_KEY"] = "your-API-key" response = completion( model="gpt-3.5-turbo", messages=[{ "content": "Hello, how are you?","role": "user"}] ) # LiteLLM with Claude Models os.environ["ANTHROPIC_API_KEY"] = "your-API-key" response = completion( model="claude-2", messages=[{ "content": "Hello, how are you?","role": "user"}] )


자세한 내용은 해당 공식 문서를 참조하세요.


문학

LiteLLM을 시작하세요 ⭐


다른 멋진 도구나 프레임워크를 사용하거나 구축한 적이 있나요?


댓글로 그들에 대해 알려주세요 :)