Bli riktigt vass på AI med dessa open source bibliotek

UtvecklingBli riktigt vass på AI med dessa open source bibliotek

Bli riktigt vass på AI med dessa open source bibliotek

Upptäck open-source bibliotek som tar din AI-utveckling till nästa nivå. Dessa verktyg erbjuder allt från förbättrad agentbyggnad och minneshantering till snabb vektordatabaslagring och semantisk caching. Perfekta för att skapa effektiva, skalbara och kostnadseffektiva AI-applikationer. Utforska dessa resurser och bli en AI-mästare.

Composio: Bygg tillförlitliga AI-agenter 10 gånger snabbare

Byggandet av effektiva AI-agenter kräver robusta verktyg, och här kommer Composio in i bilden. Composio erbjuder integrationer som förbättrar AI-arbetsflöden och stödjer både Python och Javascript.

Python: Installera med:

Copy codepip install composio-core

Lägg till en GitHub-integration:

csharpCopy codecomposio add github

Kodexempel för att stjärnmärka en GitHub-repository:

pythonCopy codefrom openai import OpenAI
from composio_openai import ComposioToolSet, App

openai_client = OpenAI(api_key="******OPENAIKEY******")
composio_toolset = ComposioToolSet(api_key="******COMPOSIO_API_KEY******")

actions = composio_toolset.get_actions(actions=[Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER])
my_task = "Star a repo ComposioHQ/composio on GitHub"

response = openai_client.chat.completions.create(
    model="gpt-4-turbo",
    tools=actions,
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": my_task}
    ]
)

Javascript: Installera med npm:

Copy codenpm install composio-core

Kodexempel för att stjärnmärka en GitHub-repository:

javascriptCopy codeimport { OpenAI } from "openai";
import { OpenAIToolSet } from "composio-core";

const toolset = new OpenAIToolSet({
  apiKey: process.env.COMPOSIO_API_KEY,
});

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")

Julep: Ramverk för att bygga tillståndsbaserade AI-agenter

Julep erbjuder ett ramverk för att bygga produktionsklara AI-agenter med långsiktig minneshantering.

Installera med:

Copy codepip install julep

Kodexempel:

pythonCopy codefrom julep import Client
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)
agent = client.agents.create(name="Jessica", model="gpt-4", tools=[])
user = client.users.create(name="Anon", about="Average nerdy tech bro/girl spending 8 hours a day on a laptop")
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)

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)))

E2B: Kodtolkning för AI-appar

E2B erbjuder en säker molnmiljö för AI-agenters kodkörning.

Installera med:

cssCopy codenpm i @e2b/code-interpreter

Kodexempel:

javascriptCopy codeimport { 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()

Camel-ai: Bygg kommunikativa AI-system

Camel erbjuder ett skalbart tillvägagångssätt för att studera samarbetsbeteenden i multi-agent system.

Installera med:

Copy codepip install camel-ai

Kodexempel:

pythonCopy codefrom 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.')
agent = ChatAgent(system_message=sys_msg, message_window_size=10)

usr_msg = bm.make_user_message(role_name='prof. Claude Shannon', content='what is information in your mind?')
response = agent.step(usr_msg)
print(response.msgs[0].content)

CopilotKit: Bygg AI-kopiloter för React-appar

CopilotKit låter användare inkludera AI-funktioner i sina befintliga React-applikationer.

Installera med:

bashCopy codenpm i @copilotkit/react-core @copilotkit/react-ui

Kodexempel:

javascriptCopy code"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>
  );
}

Aider: AI-parprogrammerare

Aider är en AI-driven parprogrammerare som kan starta projekt, redigera filer eller arbeta med befintliga Git-repositories från terminalen.

Installera med:

Copy codepip install aider-chat

Kom igång:

shellCopy code# 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

Haystack: Bygg komposabla RAG-pipelines

Haystack erbjuder ett modulärt tillvägagångssätt för att bygga produktionsklara sök-pipelines.

Installera med:

Copy codepip install haystack-ai

Kodexempel:

pythonCopy codeimport 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])

Pgvectorscale: Snabbaste vektordatabasen

Pgvectorscale är en förlängning av PgVector, en vektordatabas från PostgreSQL, som kan integreras sömlöst med befintliga Postgres-databaser.

Installera genom att kompilera och installera:

shellCopy code# 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

Anslut till databasen:

sqlCopy codepsql -d "postgres://<username>:<password>@<host>:<port>/<database-name>"
CREATE EXTENSION IF NOT EXISTS vectorscale CASCADE;
CREATE TABLE IF NOT EXISTS document_embedding  (
    id BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
    metadata JSONB,
    contents TEXT,
    embedding VECTOR(1536)
)

Mem0 (EmbedChain): Bygg personliga LLM-appar

Mem0 erbjuder ett smart minneslager för stora språkmodeller, vilket gör det möjligt att lägga till bestående minne för användare, agenter och sessioner.

Installera med:

Copy codepip install mem0ai

Kodexempel:

pythonCopy codefrom mem0 import Memory

# Initialisera Mem0
m = Memory()

# Spara ett minne från valfri ostrukturerad text
result = m.add("I am working on improving my tennis skills. Suggest some online courses.", user_id="Alice", metadata={"category": "hobbies"})
print(result)
# Skapat minne: Förbättra sina tenniskunskaper. Söker onlineförslag.

# Hämta minnen
all_memories = m.get_all()
print(all_memories)

# Sök minnen
related_memories = m.search(query="What are Alice's hobbies?", user_id="alice")
print(related_memories)

# Uppdatera ett minne
result = m.update(memory_id="m1", data="Likes to play tennis on weekends")
print(result)

# Hämta minneshistorik
history = m.history(memory_id="m1")
print(history)

FastEmbed: Snabbare inbäddning av dokument

FastEmbed från Qdrant är ett snabbt och lättviktigt Python-bibliotek för inbäddningsgenerering. Det använder ONNX runtime istället för Pytorch, vilket gör det snabbare.

Installera med:

arduinoCopy codepip install fastembed

# eller med GPU-stöd
pip install fastembed-gpu

Kodexempel:

pythonCopy codefrom fastembed import TextEmbedding
from typing import List

# Exempel på dokumentlista
documents: List[str] = [
    "This is built to be faster and lighter than other embedding libraries, e.g. Transformers, Sentence-Transformers, etc.",
    "FastEmbed is supported by and maintained by Qdrant."
]

# Detta triggar nedladdning och initialisering av modellen
embedding_model = TextEmbedding()
print("Modellen BAAI/bge-small-en-v1.5 är redo att användas.")

embeddings_generator = embedding_model.embed(documents)  # påminnelse detta är en generator
embeddings_list = list(embedding_model.embed(documents))
len(embeddings_list[0]) # Vektor på 384 dimensioner

Instructor: Strukturerad dataextraktion från LLM

Instructor är ett verktyg som förenklar validering, omförsök och streaming av LLM-utdata. Det använder Pydantic för Python och Zod för JS/TS för datavalidering och stödjer flera modellleverantörer.

Installera med:

cssCopy codenpm i @instructor-ai/instructor zod openai

Kodexempel:

javascriptCopy codeimport 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({
  // Beskrivning används i prompten
  age: z.number().describe("The age of the user"), 
  name: z.string()
})

// User kommer att vara av typen 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" }

LiteLLM: Drop-in ersättning för LLM i OpenAI-format

LiteLLM låter dig använda valfri modellleverantör som en drop-in ersättning för OpenAI-modeller med samma implementationsformat.

Installera med:

Copy codepip install litellm

Kodexempel:

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

Kommentera:

Kommentar

Type at least 1 character to search
Kontakta oss:
Hitta oss i sociala medier: