22
231. Sign up for [Cerebras](https://cloud.cerebras.ai/)
242. Get a Cerebras API Key
253. Save it in a [Val Town environment variable](https://www.val.town/settings/environment-variables) called `CEREBRAS_API_KEY`
26
27Once Cerebras is set up in your Val Town account, there are two ways to get started:
37const { OpenAI } = await import("https://esm.sh/openai");
38const client = new OpenAI({
39 apiKey: "YOUR_CEREBRAS_API_KEY",
40 baseURL: "https://api.cerebras.ai/v1"
41});
42const response = await client.chat.completions.create({
54## Sample apps
55
56* **[Cerebras Searcher](https://www.val.town/v/stevekrouse/cerebras_searcher)** - a Perplexity clone that uses the SerpAPI to do RAG
57and summaries with Cerebras (*requires a SerpAPI key*)
58* **[Cerebras Coder](https://www.val.town/v/stevekrouse/cerebras_coder)** - an app that
59generates websites in a second with Cerebras
141. Copy this Val and save it as an Email Val (choose Val type in top-right corner of editor)
15
162. Add your Fireworks (or openai API compatible) API key to line 8 (or use an environment variable: https://docs.val.town/reference/environment-variables/)
17
183. Copy the email address of the Val (click 3 dots in top-right > Copy > Copy email address)
88 // Keep these comments so we remember not to change this
89 const client = new OpenAI({
90 apiKey: Deno.env.get("CEREBRAS_API_KEY"),
91 baseURL: "https://api.cerebras.ai/v1",
92 });
93
101 return Response.json({ message: generatedMessage });
102 } catch (error) {
103 console.error("Error calling Cerebras API:", error);
104
105 if (error.status === 429) {
106 return Response.json({ error: "Cerebras API rate limit reached. Please try again later." }, { status: 429 });
107 } else {
108 return Response.json({ error: `API Error: ${error.message}` }, { status: 500 });
109 }
110 }
109 return Response.json({ message: generatedMessage });
110 } catch (error) {
111 console.error("Error calling OpenAI API:", error);
112
113 if (error.status === 429) {
143
144const css = `
145@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap');
146
147body {
31const { OpenAI } = await import("https://esm.sh/openai");
32const client = new OpenAI({
33 apiKey: "YOUR_CEREBRAS_API_KEY",
34 baseURL: "https://api.cerebras.ai/v1"
35});
36const response = await client.chat.completions.create({
48## Sample apps
49
50* **[Cerebras Searcher](https://www.val.town/v/stevekrouse/cerebras_searcher)** - a Perplexity clone that uses the SerpAPI to do RAG
51and summaries with Cerebras (*requires a SerpAPI key*)
52* **[Cerebras Coder](https://www.val.town/v/stevekrouse/cerebras_coder)** - an app that
53generates websites in a second with Cerebras
85 const { OpenAI } = await import("https://esm.sh/openai");
86 const client = new OpenAI({
87 apiKey: Deno.env.get("CEREBRAS_API_KEY"),
88 baseURL: "https://api.cerebras.ai/v1",
89 });
90
99 return Response.json({ message: generatedMessage });
100 } catch (error) {
101 console.error("Error calling Cerebras API:", error);
102
103 if (error.status === 429) {
104 return Response.json({ error: "Cerebras API rate limit reached. Please try again later." }, { status: 429 });
105 } else {
106 return Response.json({ error: `API Error: ${error.message}` }, { status: 500 });
107 }
108 }
31const { OpenAI } = await import("https://esm.sh/openai");
32const client = new OpenAI({
33 apiKey: "YOUR_CEREBRAS_API_KEY",
34 baseURL: "https://api.cerebras.ai/v1"
35});
36const response = await client.chat.completions.create({
48## Sample apps
49
50* **[Cerebras Searcher](https://www.val.town/v/stevekrouse/cerebras_searcher)** - a Perplexity clone that uses the SerpAPI to do RAG
51and summaries with Cerebras (*requires a SerpAPI key*)
52* **[Cerebras Coder](https://www.val.town/v/stevekrouse/cerebras_coder)** - an app that
53generates websites in a second with Cerebras
31const { OpenAI } = await import("https://esm.sh/openai");
32const client = new OpenAI({
33 apiKey: "YOUR_CEREBRAS_API_KEY",
34 baseURL: "https://api.cerebras.ai/v1"
35});
36const response = await client.chat.completions.create({
48## Sample apps
49
50* **[Cerebras Searcher](https://www.val.town/v/stevekrouse/cerebras_searcher)** - a Perplexity clone that uses the SerpAPI to do RAG
51and summaries with Cerebras (*requires a SerpAPI key*)
52* **[Cerebras Coder](https://www.val.town/v/stevekrouse/cerebras_coder)** - an app that
53generates websites in a second with Cerebras
93 const { OpenAI } = await import("https://esm.sh/openai");
94 const client = new OpenAI({
95 apiKey: Deno.env.get("CEREBRAS_API_KEY"),
96 baseURL: "https://api.cerebras.ai/v1"
97 });
98
106 return Response.json({ message: generatedMessage });
107 } catch (error) {
108 console.error("Error calling Cerebras API:", error);
109
110 if (error.status === 429) {
111 return Response.json({ error: "Cerebras API rate limit reached. Please try again later." }, { status: 429 });
112 } else {
113 return Response.json({ error: `API Error: ${error.message}` }, { status: 500 });
114 }
115 }
217 } catch (error) {
218 Toastify({
219 text: "We may have hit our Cerebras Usage limits. Try again later or fork this and use your own API key.",
220 position: "center",
221 duration: 3000,
970 };
971 } else {
972 const client = new Cerebras({ apiKey: Deno.env.get("CEREBRAS_API_KEY") });
973 const completion = await client.chat.completions.create({
974 messages: [
1095 <meta name="viewport" content="width=device-width, initial-scale=1.0">
1096 <title>CerebrasCoder</title>
1097 <link rel="preconnect" href="https://fonts.googleapis.com" />
1098 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
1099 <link
1100 href="https://fonts.googleapis.com/css2?family=DM+Mono:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap"
1101 rel="stylesheet"
1102 />
1111 <meta property="og:description" content="Turn your ideas into fully functional apps in less than a second – powered by Llama3.3-70b on Cerebras's super-fast wafer chips. Code is 100% open-source, hosted on Val Town."">
1112 <meta property="og:type" content="website">
1113 <meta property="og:image" content="https://stevekrouse-blob_admin.web.val.run/api/public/CerebrasCoderOG.jpg">
1114
1115