[{"data":1,"prerenderedAt":50},["ShallowReactive",2],{"list-guides":3},[4,16,25,34,42],{"collection":5,"slug":6,"path":7,"title":8,"seoTitle":9,"description":10,"summary":11,"primaryKeyword":12,"cluster":13,"published":14,"updated":14,"reviewed":14,"readingMinutes":15},"guides","nodejs-uncensored-llm-api","\u002Fguides\u002Fnodejs-uncensored-llm-api\u002F","Call an uncensored LLM API from Node.js","Uncensored LLM API in Node.js and TypeScript","Call an uncensored or open-weight LLM from Node.js with the OpenAI SDK: environment variables, a first request, streaming with cancellation, errors and retries.","Install the openai package, read the base URL, key and model from the environment, and call client.chat.completions.create. Streaming works with for await, and an AbortController cancels a slow request. The same code runs against hosted providers and local OpenAI-compatible servers by changing three environment variables.","uncensored llm api nodejs","quickstart","2026-11-14",2,{"collection":5,"slug":17,"path":18,"title":19,"seoTitle":20,"description":21,"summary":22,"primaryKeyword":23,"cluster":13,"published":14,"updated":14,"reviewed":14,"readingMinutes":24},"python-uncensored-llm-api","\u002Fguides\u002Fpython-uncensored-llm-api\u002F","Call an uncensored LLM API from Python","Uncensored LLM API in Python: Setup, Streaming, Errors","Call an uncensored or open-weight LLM from Python with the OpenAI SDK: environment variables, first request, streaming, error handling, retries and provider switching.","Install the openai package, set LLM_BASE_URL, LLM_API_KEY and LLM_MODEL, and call client.chat.completions.create. The same code works with any OpenAI-compatible provider or a local server; only the three environment variables change. Handle timeouts and status errors explicitly, and read usage to see what you were billed.","uncensored llm api python",3,{"collection":5,"slug":26,"path":27,"title":28,"seoTitle":29,"description":30,"summary":31,"primaryKeyword":32,"cluster":33,"published":14,"updated":14,"reviewed":14,"readingMinutes":24},"openai-compatible-api","\u002Fguides\u002Fopenai-compatible-api\u002F","OpenAI-compatible LLM APIs, and where they differ","OpenAI-Compatible LLM API: What Changes Between Providers","What OpenAI-compatible means for uncensored LLM APIs: base URLs, ignored parameters, reasoning fields, usage in streams, tool calls, plus a script to probe any endpoint.","An OpenAI-compatible API accepts the chat-completions request format, so the official SDKs work after changing the base URL and key. Compatibility stops at the shape of the request: providers differ in which parameters they apply, how they return reasoning, whether usage arrives in streams, and how they cap output. Probe an endpoint before relying on any of these.","openai compatible uncensored llm api","api-features",{"collection":5,"slug":35,"path":36,"title":37,"seoTitle":38,"description":39,"summary":40,"primaryKeyword":41,"cluster":33,"published":14,"updated":14,"reviewed":14,"readingMinutes":24},"streaming-llm-responses","\u002Fguides\u002Fstreaming-llm-responses\u002F","Streaming LLM responses with server-sent events","LLM API Streaming Tutorial: SSE, Cancel and Timeouts","How LLM API streaming works: the server-sent events format, parsing chunks, the final usage chunk, cancelling a stream, timeouts and errors that arrive mid-stream.","With stream set to true, an OpenAI-compatible API sends the reply as server-sent events: lines that start with \"data:\", each holding a JSON chunk with a small delta of text, ending with \"data: [DONE]\". Read the body incrementally, buffer until a blank line, parse each event, and cancel the request when you no longer need the rest.","llm api streaming tutorial",{"collection":5,"slug":43,"path":44,"title":45,"seoTitle":46,"description":47,"summary":48,"primaryKeyword":49,"cluster":33,"published":14,"updated":14,"reviewed":14,"readingMinutes":15},"tool-calling-llm-api","\u002Fguides\u002Ftool-calling-llm-api\u002F","Tool calling with an OpenAI-compatible LLM API","LLM Tool Calling Over an OpenAI-Compatible API","Tool calling with open-weight and uncensored LLMs: defining tools, the request and response loop, validating arguments, limits on rounds, and provider differences.","Describe each function with a JSON Schema in the tools array. When the model wants one, the reply has finish_reason tool_calls and a list of calls with JSON arguments. Run the function yourself, append the result as a tool message with the matching tool_call_id, and call the API again until the model answers in text. Validate arguments and cap the number of rounds.","tool calling llm api",1794622337619]