daytimedrinkingclub / shipstation

Generate landing pages, html templates, portfolios and more using state of the art AI tools. Works most of the times. Works really really well sometimes!
https://shipstation.ai/
67 stars 59 forks source link

Improve and separate prompts for landing page and portfolio #20

Open ptmaroct opened 4 weeks ago

ptmaroct commented 4 weeks ago

Improve tool descriptions and prompts to have better designed and modern looking websites. Currently generated ones work but design can be improved by miles.

Also currently same flow is used for generating landing pages and website, this should be using two different approaches. One shoe fits all aint working and never will.

Yashgupta9330 commented 4 weeks ago

can you give some details i cant able to understand properly?

vikaswakde commented 4 weeks ago

I have some questions here :

  1. In /server/services/onboadingService.js line number 65-66, this prompt. It does seem a bit out of place in the context of the onboardingService.js or what am I missing explain me


  1. in /server/services/constants.js can we create roles like this?
    
    { role: "system", content: "You are assisting in creating a professional portfolio website that showcases the individual's skills, projects, and achievements." },
    { role: "user", content: "Hi, I need help creating my portfolio website." },
    { role: "assistant", content: "Certainly! I'd be happy to help you create a professional portfolio website. To get started, could you tell me your name and your current professional title or the field you're in?" },
<br>

 ### what I was proposing was for  1st one 
: create a function that takes shipType and returns system the prompt dynamically

function getSystemPrompt(shipType) { switch (shipType) { case SHIP_TYPES.PORTFOLIO: return "You are assisting in creating a professional portfolio website that showcases the individual's skills, projects, and achievements."; case SHIP_TYPES.LANDING_PAGE: return "You are assisting in creating a high-converting landing page tailored to the user's specific needs and industry."; case SHIP_TYPES.PROMPT: return "You are assisting in creating a custom website based on the user's specific requirements."; default: return "You are assisting in creating a website that meets the user's specific needs."; } }

   in try catch for currentMessage , 
try {
  currentMessage = await client.sendMessage({
    system: getSystemPrompt(shipType),
    messages,
    tools,
  });
  sendEvent("newMessage", {
    conversation: currentMessage.content,
  });
} catch (error) {
  console.error("Error creating message:", error);
  sendEvent("error", {
    error: "Error calling Anthropic API",
  });
  throw error;
} 


   I am missing something here? am I confused what does the current message do ? please explain me 
   because, I am not able to understand why we are sending this prompt `Your task is to deploy a website for the user and share them the deployed url. Use the search tool to get the initial data and pass it on to product manager tool`
ptmaroct commented 3 weeks ago

Yes your current idea is right, you can start having multiple prompts @vikaswakde

Check for hardcoded references for landing page/portfolio words in server prompts. The generic goal is to create a website. From the frontend when a user starts, they tell whether they want a landing page or portfolio and that is also passed onto backend in the website creation init, refactor that

ptmaroct commented 2 weeks ago

@vikaswakde @ms4n pick this up folks