← Вакансії

AI Engineer — Production LLM Chatbot on Next.js / TypeScript (Vercel AI SDK)

Бюджет: $22.0 - $25.0 HOURLY / PART_TIME ⭐ 4.38 (25) United States

chatbot-development, node.js, artificial-intelligence, api, typescript

Overview We are building a conversational AI assistant (a chatbot) embedded in a content-rich Next.js 16 / TypeScript web app. It answers user questions and makes recommendations drawn strictly from a curated, first-party directory of listings, and surfaces results as cards and on a map. You build the AI layer. A separate engineer owns the front end and the data layer; you build the /api/chat brain that plugs into them. This is not a "wrap a model and hope" job. The core of the role is grounding and guardrails: the assistant must recommend only what our data returns, never invent listings or facts, and stay strictly inside an approved set of entries. If you think of hallucination control and scope enforcement as the hard part of the job, not an afterthought, you are who we want. What you will build A streaming chatbot as a Next.js App Router /api/chat route handler using the Vercel AI SDK (streamText server side, useChat client side). HTTP streaming, no websocket. Tool-calling grounding: the model answers only by calling structured tools over our data layer. It recommends only what the tools return. No open-web facts, no invented details. Hard scope enforcement (the requirement we care about most): the assistant may only recommend from an approved subset of the catalog, enforced in layers (tool/data, system prompt, output check) and proven with an eval set that tries to break it. A streamed contract that carries both assistant text and structured result references so the UI can render cards and map pins. System prompts and guardrails: ground in approved sources, refuse or redirect out-of-scope asks gracefully, surface our tracked/masked outbound links (never the raw destination URL). Per-session conversation memory, multilingual responses out of the box, and a save-to-list hook into the other engineer's feature. A small, repo-committed eval set (grounding, scope, link handling, prompt-injection resistance) plus rate limiting and provider-cost control (prompt caching, lean payloads). Stack (locked) Next.js 16 (App Router), React 19, TypeScript strict, Vercel AI SDK, Claude (Anthropic) via @ai-sdk/anthropic, provider-swappable, Neon/Postgres behind the data layer, deployed on Vercel. Note: Next.js 16 and the current AI SDK post-date most model training cutoffs, so you must be current on them, not on older APIs. Required Shipped a production LLM chatbot or agent with retrieval or tool-calling and real guardrails (link it). Strong TypeScript; comfortable working inside a Next.js App Router codebase. Prompt engineering with an eval and guardrail mindset: you reduce hallucination on purpose and can prove it. Hands-on with the Vercel AI SDK and with OpenAI and/or Anthropic models. Nice to have Tool-calling and structured-output design, pgvector / semantic retrieval (a likely later phase), prompt-injection hardening, LLM cost/rate-limit management. Experience keeping an LLM tightly bounded to a fixed dataset (no scope drift) in a real product. A possible later phase may add a voice agent; voice experience (realtime STT/LLM/TTS, telephony) is a plus, not required now. How we work AI coding assistants are fine and expected; be transparent about it. You own correctness either way: a chatbot that invents facts or wanders out of scope is a failure regardless of how it was written. ***Do not reach out to me directly outside of Upwork. We are only using Upwork for the project. ***
Відкрити на Upwork