UNPKG

ai-horde

Version:
30 lines 2.99 kB
{ "name": "ai-horde", "version": "0.2.1", "description": "", "main": "dist/index.js", "keywords": [ "kobold", "horde", "http", "ai" ], "author": "Seikho", "license": "MIT", "repository": { "type": "git", "url": "https://github.com/seikho/ai-horde.git" }, "dependencies": { "@types/needle": "^3.2.0", "needle": "^3.2.0" }, "devDependencies": { "typescript": "^4.9.5" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "pnpm tsc" }, "readme": "# ai-horde\n\n> Stable Horde request library\n\n## Work in progress\n\n### TODO\n\n- Add image generation endpoints\n\n## Installation and Usage\n\n```sh\n> npm install ai-horde\n```\n\n```ts\nimport * as horde from 'ai-horde'\n\nconst user = await horde.findUser('some-api-key')\n```\n\n## API\n\n### generate\n\nDispatch an asynchronous text generation request\n\n```ts\nfunction generate(request: GenerateRequest, apikey?: string): Promise<{ id: string }>\n\ntype GenerateRequest = {\n prompt: string\n params: {\n n?: number\n max_context_length: number\n max_length: number\n frmtadsnsp?: boolean\n frmtrmblln?: boolean\n frmtrmspch?: boolean\n frmttriminc?: boolean\n rep_pen?: number\n rep_pen_range?: number\n rep_pen_slope?: number\n singleline?: boolean\n soft_prompt?: string\n temperature?: number\n tfs?: number\n top_a?: number\n top_k?: number\n top_p?: number\n typical?: number\n sampler_order?: number\n }\n trusted_workers?: boolean\n nsfw?: boolean\n workers?: string[]\n models?: string[]\n}\n```\n\n### waitForResponse\n\nWait for a text generation response\n\nExample:\n\n```ts\nconst models = await horde.getModels('text')\nconst { id } = await horde.generate(params, apikey)\nconst response = await horde.waitForResponse(id)\n\nreturn response.generations\n```\n\n```ts\nfunction waitForResponse(id: string, timeoutSecs?: number): Promise<StatusResponse>\n\ntype StatusResponse = {\n finished: number\n processing: number\n restarted: number\n waiting: number\n done: boolean\n faulted: boolean\n wait_time: number\n queue_position: number\n kudos: number\n is_possible: boolean\n generations: Array<{\n worker_id: string\n worker_name: string\n model: string\n state: string\n text: string\n seed: number\n }>\n}\n```\n\n### findUser\n\n```ts\nfunction findUser(apikey: string): Promise<FindUserResponse>\n\ntype FindUserResponse = {\n kudos_details: {\n accumulated: number\n gifted: number\n admin: number\n received: number\n recurring: number\n }\n usage: {\n tokens: number\n requests: number\n }\n contributions: {\n tokens: number\n fulfillments: number\n }\n username: string\n id: number\n kudos: number\n concurrency: number\n worker_invited: number\n moderator: boolean\n worker_count: number\n worker_ids: string[]\n trusted: number\n pseudonymous: number\n}\n```\n" }