Tillbaka

AI - Orkestrering

LangChain och LangGraph

LangChain och LangGraph är två ramverk/biblioteksfamiljer med syfte att  utveckla  applikationer med stöd av  stora språkmodeller (LLM). Langchain har ett stort utbud av drivrutiner för större delen av marknaden av språkmodeller och tjänster knutna till dessa från ett stort antal leverantörer eller lokalt driftsatta modeller. Lanchchain implementerar ett koncept med linjära, sekventiella arbetsflöden, t ex om en uppgift som skall utföras med agenter steg-för-steg: A → B → C (Agent A till C).


LangGraph bygger vidare på LangChain och är ett ramverk för att skapa mer avancerade, tillståndsbaserade och icke-linjära arbetsflöden med  AI-agenter. Med LangGraph
bygger man komplexa samarbeten mellan agenter som leds av en övervakare. Användningsområdet är tillämpningar där besluten inte är linjära, utan kan ha flera möjliga vägar och återkopplingar i ett komplext AI-system.


Långtidsminne (RAG) och verktyg kan knytas till agenterna. Verktyg kan hämtas från LangChain-biblioteken och användas genom att konfigurera nya verktyg. Det går även att skapa egna verktyg i form av nya moduler. De flesta stora språkmodeller har stöd för att använda verktyg. Långtidsminne måste dock implementeras som moduler, fn finns FAISS och PgVector implementerade.


AI-orchestreringen tillämpar dynamisk laddning av bibliotek och drivrutiner, detta innebär att endast för tillämpningen nödvändiga bibliotek behöver vara installerade på servern. Eftersom det annars skulle kräva ett stort antal installerade bibliotek, som potentiellt även kan vara i konflikt med varandra, så ger detta en med slimmad och flexibel lösning. 

Information om leverantören Open AI

I detta exempel tar vi fram information om Open AI. Ta reda på klass (ChatOpenAI)  och bibliotek (langchain-openai).

Skapa ett konto hos Open AI och ta fram en API-nyckel.


Här finns en lista med alla drivrutiner https://python.langchain.com/docs/integrations/providers/all/ 

Skapa / uppdatera leverantören i Odoo

Ange bibliotek (langchain_openai, observera att bindestrecket i detta sammanhang är understrykningstecken) klass (ChatOpenAI och OpenAIEmbeddings) samt API-nyckel.

Installera biblioteket på servern.

                sudo pip3 install -r langchain-openai  --ignore-installed --break-system-packages

              

Observera att biblioteket måste installeras centralt  (sudo) , annars hittar inte Odoo-servern biblioteket. Flaggan "break-system-packages" talar om att vi är medvetna om att biblioteket installeras centralt och kan användas av hela servern.


Modell är ett attribut

Leverantörens modeller representeras av attribut på produkten som i sin tur utgör underlag för att skapa språkmodeller i Odoo.

Använd knappen "Create LLMs" för att skapa språkmodeller som kan användas i agenter.



Språkmodellen i Odoo

Språkmodellen som används av agenterna. Modellen måste vara "Confirmed" för att kunna väljas till en agent, Använd Test-knappen för att verifiera att modellen fungerar. 

API-nyckeln kopieras till språkmodellen från leverantören, det finns även en funktion som kan hämta nyckeln. API-nyckeln lagras individuellt på resepektive modell.




Alternativa slutpunkter

Genom att ange alternativ slutpunkt kan andra leverantörer eller lokala servrar användas. Många leverantörer använder Open AI-protokollet och då kan bibliotek och klass användas för Open AI, men med en annan slutpunkt så använder man den tjänsten istället för Open AI:s.



Globala API-nycklar i odoo.conf

API-nycklar kan också konfigureras centralt i /etc/odoo.conf. Detta gör att alla Odoo-instanser får tillgång till nyckeln. Nyckeln kan överridas med en lokal konfigurering.




Skapa verktyg

För att skapa ett verktyg; ange klass (BingSearchAPIWrapper) och bibliotek (lanchain_commnuity.utilities)