우리의 불화에 가입하십시오 - 우리는 생성 AI에서 가장 친근하고 멋진 개발자 그룹 중 하나입니다!
많은 프레임 워크와 달리 우리는 Honojs와 Jsonnet 위에 만들어졌으며 둘 다 CloudFlare와 Google에서 각각 구축되었습니다. 그래서 당신이 나를 믿지 않더라도 ... 당신은 그들을 믿을 수 있습니다;)
우리는 JSON 또는 특정 DSL (본질적으로 깨지기 쉬운)의 풍미를 구축하지 않고 컴파일 단계를 제공하지 않습니다. 우리의 기본 라이브러리는 견고하고 안정적입니다.
Edgechains에서는 생성 AI에 대한 독특한 접근 방식을 취합니다. 생성 AI는 UI 및 라이브러리 설계 패턴 문제보다는 배포 및 구성 관리 문제라고 생각합니다. 우리는이 문제를 다른 도메인 인 Kubernetes Config Management에서 해결 한 기술을 기반으로하고이를 생성 AI에 가져옵니다. Edgechains는 JSONNET 위에 구축되었으며, 원래 BORG 인프라에서 방대한 양의 구성 코드를 관리하는 경험을 바탕으로 Google이 구축했습니다.
Edgechains는 다음을 제공합니다.
생성 AI를 처음 접하는 대부분의 사람들은 OpenAI 또는 다른 LLM을 사용하는 방법은 단순히 질문을하고 마술처럼 대답하도록하는 것이라고 생각합니다. 대답은 매우 다르고 복잡합니다.
생성 AI, OpenAI 및 LLM은 매우 구체적인 방식으로 프롬프트를 작성해야합니다. 프롬프트를 작성하는 이러한 각 방법은 매우 관여하고 매우 복잡합니다. 실제로 너무 복잡하여 연구 논문이 게시되어 있습니다. 예 : :
또한 이러한 신속한 기술은 한 종류의 LLM에서 작동하지만 다른 LLM에는 작동하지 않습니다. EG의 경우 GPT-3.5를 위해 특정 방식으로 작성된 프롬프트 및 체인은 동일한 목표를 달성하려면 LLAMA2에 대해 다시 작성해야합니다. 이로 인해 프롬프트가 폭발하여 버전과 관리하기가 어려워집니다.
프롬프트는 시간이 지남에 따라 변합니다. 이것을 프롬프트 드리프트라고합니다. Chatgpt의 행동이 어떻게 변화하는지 보여줄 수있는 충분한 연구가 있습니다. 인프라는이 드리프트로 버전/변경할 수 있어야합니다. 프롬프트가 많은 레이어 아래에 숨겨져있는 라이브러리를 사용하는 경우이 작업을 수행하는 것이 불가능하다는 것을 알게됩니다. 아무것도하지 않더라도 시간이 지남에 따라 생산 코드가 썩습니다.
-Chatgpt의 행동은 시간이 지남에 따라 어떻게 변합니까?
프로덕션의 큰 과제 중 하나는 프롬프트와 체인을 계속 테스트하고 빠르게 반복하는 방법입니다. 프롬프트가 많은 라이브러리와 추상화 층 아래에 있으면 불가능합니다. 그러나 프롬프트가 코드 외부에 거주 하고 선언적이라면 쉽게 수행 할 수 있습니다. 실제로 Edgechains에서는 전체 프롬프트 및 체인 로직을 S3 또는 API에 넣을 수 있습니다.
각 프롬프트 또는 체인에는 이와 관련된 토큰 비용이 있습니다. 특정 프롬프트가 매우 좋다고 생각할 수도 있지만 많은 양의 토큰을 소비 할 수 있습니다. 예를 들어, 생각한 스타일의 프롬프트는 정상적인 프롬프트만큼 많은 출력 토큰 만큼이나 3 배의 소비를 소비합니다. 이를 관리 할 수 있도록 프레임 워크에 세밀한 추적 및 측정이 내장되어 있어야합니다. Edgechains에는이 내장이 있습니다.
git clone https://github.com/arakoodev/EdgeChains/
cd EdgeChains
이 섹션에서는 PDF 기능과의 채팅을 활용하는 방법에 대한 개발자에게 지침을 제공합니다. 이 단계를 수행하면 기능을 프로젝트에 원활하게 통합 할 수 있습니다.
cd JS/edgechains/examples/chat-with-pdf/
npm install
secrets.jsonnet 에서 비밀을 설정하십시오 local SUPABASE_API_KEY = "your supabase api key here";
local OPENAI_API_KEY = "your openai api key here";
local SUPABASE_URL = "your supabase url here";
{
"supabase_api_key":SUPABASE_API_KEY,
"supabase_url":SUPABASE_URL,
"openai_api_key":OPENAI_API_KEY,
}
create table if not exists documents (
id bigint primary key generated always as identity,
content text,
embedding vector (1536)
);
create or replace function public.match_documents (
query_embedding vector(1536),
similarity_threshold float,
match_count int
)
returns table (
id bigint,
content text,
similarity float
)
language sql
as $$
select
id,
content,
1- (documents.embedding <=> query_embedding) as similarity
from documents
where 1 - (documents.embedding <=> query_embedding) > similarity_threshold
order by documents.embedding <=> query_embedding
limit match_count;
$$;
서버 시작 :
npm run start GET 엔드 포인트를 누르십시오.
http://localhost:3000/chatWithpdf ? question=who is nirmala sitarama
Edgechains에 기여하려면 기여 CLA를 읽으십시오. 이 프로젝트는 Edgechains 행동 강령을 준수합니다. 참여 함으로써이 코드를지지해야합니다.
요청 및 버그를 추적하기 위해 GitHub 문제를 사용합니다.
우리는 그들의 기여와 영감에 대해 다음 개인과 프로젝트에 진심으로 감사를 표하고 싶습니다.
Edgechains는 GNU Affero General Public License v3.0 및 상용 소프트웨어로 라이센스를 부여합니다. 상업용 라이센스는 당사에 문의 하거나이 GitHub에서 문제를 제기하십시오.