LLM 프롬프트를 실행 가능하고 버전 관리되도록 만드세요.
Express 서버에서:
yarn add spellbook-forge
import { spellbookForge } from "spellbook-forge" ;
const app = express ( )
. use ( spellbookForge ( {
gitHost : 'https://github.com'
} ) )
그런 다음:
GET http://localhost:3000/your/repository/prompt?execute
<-- HTTP 200
{
"prompt-content": "Complete this phrase in coders’ language: Hello …",
"model": "gpt3.5",
"result": "Hello, World!"
}
실제 사례를 보고 사용해 보세요!
이는 LLM 프롬프트에 대한 API 인터페이스를 생성할 수 있는 ExpressJS 미들웨어입니다. git 저장소에 저장된 프롬프트에 대한 서버를 자동으로 생성합니다. Spellbook을 사용하면 다음을 수행할 수 있습니다.
참고: 초기 버전입니다. 버그, 주요 변경 사항 및 성능 저하가 예상됩니다.
이 프롬프트 저장소: https://github.com/rafalzawadzki/spellbook-prompts/hello-world
다음과 같이 실행할 수 있습니다: https://book.spell.so/rafalzawadzki/spellbook-prompts/hello-world?execute
➡️ 마법서 서버: https://book.spell.so
서버는 spellbook-forge
사용하며 현재 Github에 Git 호스트로 연결되어 있습니다. 프롬프트가 포함된 모든 공개 저장소를 사용할 수 있습니다(허용되는 형식을 준수하는 한).
예를 들어, rafalzawadzki/spellbook-prompts 저장소를 사용하면 끝점(및 그 이상)을 형성할 수 있습니다.
https://book.spell.so/rafalzawadzki/spellbook-prompts/hello-world
전체 문서가 곧 제공될 예정입니다!
자체 Spellbook-forge 인스턴스에서 execute
쿼리를 사용하려면 .env 파일 또는 env 변수에 OpenAI API 키를 제공해야 합니다.
OPENAI_API_KEY=your-key
프롬프트 파일은 특정 형식(JSON/YAML)을 준수해야 합니다. 여기에서 예시를 확인하세요.
├── prompt1
│ ├── prompt . json
│ └── readme . md
└── collection
└── prompt2
├── prompt . yaml
└── readme . md
위의 파일 구조로 인해 다음과 같은 API 엔드포인트가 생성됩니다.
{host}/prompt1
{host}/collection/prompt2
prompt.json
프롬프트 내용과 구성이 포함된 기본 파일입니다.readme.md
프롬프트 사용법, 예제 등에 대한 추가 정보 GET
{host}/path/to/prompt
- 프롬프트 콘텐츠 가져오기
POST
{host}/path/to/prompt
- 프롬프트 내용 upsert
DELETE
{host}/path/to/prompt
- 프롬프트 삭제(readme 및 메타데이터와 함께!)
GET
{host}/path/to/prompt?execute
- 템플릿 없이 간단한 프롬프트를 표시하는 경우
POST
{host}/path/to/prompt?execute
- 템플릿이 포함된 프롬프트의 경우(권장)
// request body
{
"variables": [
"name": "World"
]
}
GET
{host}/path/to/prompt?execute=gpt4
- 다른 모델 사용(아직 구현되지 않음)프롬프트 내용을 가져오고 LangChain을 사용하여 실행할 수 있습니다.
import { PromptTemplate } from "langchain/prompts" ;
export const run = async ( ) => {
const template = await fetch (
"https://book.spell.so/rafalzawadzki/spellbook-prompts/hello-world"
) . then ( ( res ) => res . text ( ) ) ;
const prompt = new PromptTemplate ( { template , inputVariables : [ "product" ] } )
// do something with the prompt ...
}
제시된 솔루션 ofc는 주로 연결에 적합합니다. 간단한 프롬프트의 경우 Spellbook을 직접 사용하는 것이 가장 좋습니다!
앞으로 나는 Spellbook의 로딩 프롬프트를 지원하기 위해 LangChain prompt/load
기능을 확장하는 데 기여할 것입니다. 예:
import { loadPrompt } from "langchain/prompts/load" ;
const prompt = await loadPrompt ( "{spellbook-host}/hello-world/prompt" ) ;
POST /prompt?execute
execute=gpt4