Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Phind.com – Generative AI search engine for developers (phind.com)
292 points by rushingcreek on Feb 21, 2023 | hide | past | favorite | 146 comments
Hi HN,

Today we're launching phind.com, a developer-focused search engine that uses generative AI to browse the web and answer technical questions, complete with code examples and detailed explanations. It's version 1.0 of what was previously known as Hello (beta.sayhello.so) and has been completely reworked to be more accurate and reliable.

Because it's connected to the internet, Phind is always up-to-date and has access to docs, issues, and bugs that ChatGPT hasn't seen. Like ChatGPT, you can ask followup questions. Phind is smart enough to perform a new search and join it with the existing conversation context. We're merging the best of ChatGPT with the best of Google.

You're probably wondering how it's different from the new Bing. For one, we don't dumb down a user's query the way that the new Bing does. We feed your question into the model exactly as it was asked, and are laser-focused on providing developers the most detailed and comprehensive explanations to code-related questions. Secondly, we've focused the model on providing answers instead of chatbot small talk. This is one of the major improvements we've made since exiting beta.

Phind has the creative abilities to generate code, write essays, and even compose some poems/raps but isn't interested in having a conversation for conversation's sake. It should refuse to state its own opinion and rather provide a comprehensive summary of what it found online. When it isn't sure, it's designed to say so. It's not perfect yet, and misinterprets answers ~5% of the time. An example of Phind's adversarial question answering ability is https://phind.com/search?q=why+is+replacing+NaCL+with+NaCN+i....

ChatGPT became useful by learning to generate answers it thinks humans will find helpful, via a technique called Reinforcement Learning from Human Feedback (RLHF). In RLHF, a model generates multiple candidate answers for a given question and a human rates which one is better. The comparison data is then fed back into the model through an algorithm such as PPO. To improve answer quality, we're deploying RLAIF — an improvement over RLHF where the AI itself generates comparison data instead of humans. Generative LLMs have already reached the point where they can review the quality of their own answers as good or better than an average human rater tasked with annotating data for RLHF.

We still have a long way to go, but Phind is state-of-the-art at answering complex technical questions and writing intricate guides all while citing its sources. We'd love to hear your feedback.

Examples:

https://phind.com/search?q=How+to+set+up+a+CI%2FCD+pipeline+...

https://phind.com/search?q=how+to+debug+pthread+race+conditi...

https://phind.com/search?q=example+of+a+c%2B%2B+semaphore

https://phind.com/search?q=What+is+the+best+way+to+deploy+a+...

https://phind.com/search?q=show+me+when+to+use+defaultdicts+...

Discord: https://discord.gg/qHj8pwYCNg




Surprisingly it can generate Coq proofs. Unsurprisingly the "proofs" are just hallucinations that look right but make no sense at all. See for example: "coq program that proves that p->q is equivalent to q->p", which produces:

Theorem equiv_pq_qp : forall (p q : Prop), (p -> q) <-> (q -> p). Proof. intros p q. split. - intros p_imp_q q_imp_p. apply q_imp_p. apply p_imp_q. assumption. - intros q_imp_p p_imp_q. apply p_imp_q. apply q_imp_p. assumption. Qed.

... together with a lengthy and convincing explanation in natural language.

Sophists would be delighted by these mechanized post-truth AI systems.


That has been my experience for all my attempts of using chatgpt for any programming tasks: ask it something contained in the first stackoverflow answer when you google your prompt, and sure enough it gives you that. But ask it for something slightly more involved and you get something that looks plausible at very first glance but is just pure junk.


I'm wondering if the AI component here is actually a bit of a red herring.

I've been actively using Kagi[0] for the past few months and what really works brilliantly there is the notion of "lenses", AKA "per-site" search filters. So you can say - "boost reddit.com, suppress bullshitspamsite.com" and set this up for specific contexts - PHP dev, recipes, etc.

I see that Phind has some notion of this, so will have a play - but it's just this relatively simple "limit to X sites" option that I think makes a big difference in the usefulness of search for me.

[0] https://kagi.com/


My test for any search engine is:

"Best California style burrito in Austin".

Nearly every engine shows me burrito shops in California, some give shove reddit links to the top. Google was the only decent response. Phind response is what I would expect from an assistant who researched this for 5-10 minutes of searching the web. Great work!

(now add maps to those results!)


Location-aware search is one area where it's very tricky to compete with Google. Google Maps/reviews is a phenomenal product. Happy to hear that Phind worked for you here, but we're more focused on the developer/technical search use case for now.


No, for that search what you need to understand is "in <location>" vs "<location> style". Which you could get with supporting n-grams, frankly.


Excellent results for the first two queries I tried, one about HStack in SwiftUI, another about clamp in GLSL, and a bit of a mixed bag for what I purposely worded as a more error-prone and beginner minded query: “how do i create a second window in openframeworks?”

Absolutely fantastic stuff, I’m excited to add this to my tool-belt. There’s a specific feeling of knowing that an answer to your question is very simple and exists somewhere on SO, but the mental effort of sifting pages of answers seems unappealing. It seems like Phind is well suited to do this job for you!


> There’s a specific feeling of knowing that an answer to your question is very simple and exists somewhere on SO, but the mental effort of sifting pages of answers seems unappealing. It seems like Phind is well suited to do this job for you!

That simple act reduces your cognitive load, as a programmer you mind is two steps ahead assuming this trivial solution you know conceptually but do not want to spend the mental cycles and looking for the quick code so your mind can jump to the next step in the flow.


Thanks for the feedback! I'm happy it worked well for you. We're working on improving consistency -- one thing to try is simply refreshing the page to get a new answer.


For basics this works very well.

https://phind.com/search?q=How+should+I+filter+a+dictionary+...

https://phind.com/search?q=How+would+I+use+php+to+encode+wit...

https://phind.com/search?q=How+do+I+get+my+data+from+a+datab...

For more complicated prompts it misses the mark a bit but this may be going outside of the intended use case.

https://phind.com/search?q=Create+a+python+class+that+can+pa...

It would be nice if it annotated the projects it suggested in the response. The above query talks about a project called "mov" in the "provided code" but I do not see any code provided.


Thanks for the feedback. The "Create a python class that can parse MP4 headers" question is something that Phind should be able to answer well. If it doesn't give an example immediately, following up with "give me an example" usually works well.

Running it again, I got a code example:

> Create a python class that can parse MP4 headers

> To create a Python class that can parse MP4 headers, one can use the pymp4 library available on GitHub.

The Box class from this library can be used to build and parse MP4 headers.

The following code shows an example of using the Box class to build an MP4 header and then parse it:

from pymp4.parser import Box from io import BytesIO

header = Box.build(dict( type=b"ftyp", major_brand="iso5", minor_version=1, compatible_brands=["iso5", "avc1"])) print(header)

parsed_header = Box.parse(header) print(parsed_header)


Interesting, when I went back and did the prompt again it worked, I wonder if this is a context problem, because I just asked multiple questions in the same session on different programming topics.

That question wasn't my first question.

For clarity I asked different questions in the top search box assuming that would kick off a new session.


Gotcha. Asking a question in the top box always clears the context and starts a new session.


The hints for followup questions is an interesting feature and something that could become a USP for this search engine. The followup questions were at times exactly what I wanted to ask next and sometimes thought-provoking and I was compelled to click and ask them.

The performance could be improved. I've having to wait several seconds before the summary is created.


Example of a search query with good followup questions:

https://phind.com/search?q=why+is+funcref+not+working+in+God...


Thanks! We're pretty excited about that feature. As for latency, it's normally better. We're feeling the HN traffic crunch at the moment and are working on scaling.


Perhaps HN traffic has subsided, but I find it's faster than free chatGPT.


I don't share the enthusiasm. It seems like it's just reading the top results and repacking them into a paragraph, in which case as someone good at google-fu (i.e. every developer) why wouldn't I just go directly to the site with the result I want to ask? Like I'd read an actual ruby tutorial website instead of the Phind version.

Code snippets are fine, but I'd actually rather just use ChatGPT to generate code snippets and ideas, and have it explain to me details and other options in a conversational way.

Thus in general this approach, like most other AI search options, doesn't excite me.

At a high level, I think AI search is terribly hard to solve. You're fighting against existing user patterns heavily tuned to the nuanced behaviours of existing search. So you have to find a specific use case that Google sucks at (and while StackOverflow's fall from grace somewhat lends an opportunity, I think it's not sufficient for most developers to start looking for a different solution) and that you're 10x better at.

But 10x better means your speed has to be just as fast, your answers have to be significantly better, and crucially you have to be nearly 100% consistent, which is brutally hard for most AI approaches.

At that point I wouldn't even market yourself as search. In this context maybe something like "AI-powered software development assistant".


I agree that AI search is hard to solve and then it needs to be 10x better. But I also think there are many Phind searches that are 10x better than reading documentation or visiting Stack Overflow. Not just because it's adapted to exactly the thing you're looking for, but because you can ask followups and narrow it down.

For example, "how to debug pthread race conditions in c++" is asking for a guide where no single comprehensive source exists. Phind combines information from Stack Overflow and other websites to generate a more comprehensive guide: https://phind.com/search?q=how+to+debug+pthread+race+conditi....

Generating guides that aren't simply addressed by docs or individual Stack Overflow answers are where Phind really shines.


In this case, I honestly found the first result (stackoverflow) more useful. It was more comprehensive and direct. Phind told me to use tsan, use mutexes (not a debugging technique), and use a reverse debugger. The first stackoverflow link told me to use tsan among some other very useful things. And the second result was for a reverse debugger.

This is made even worse by the verbosity of Phind's answer; it could've simply given me a sentence about tsan, mutexes and reverse debugging, but it decided on a highschool essay which took as much to read as it took to skim five different methods in some stackoverflow answers.

I really don't think it's there.


So you have to find a specific use case that Google sucks at

One of the things that comes to mind is searching for exact error messages or codes, but for that I want something more like grep rather than AI.


It's also been my experience that for that to be effective, one needs to index GitHub (and GitLab) issues (maybe even commits!) to find reports from others who may have had the same problem. I cannot describe in words how much I want every single project Slack in the world to use linen.dev to stop locking away those folks who use Slack for error reports (I mean, maybe Discord, too, but ...)

That's one of my pet peeves about DDG -- they're indescribably bad about that. I actually haven't tried the same query on Bing to see if it's a Bing index problem, or if DDG just isn't good about it


Cool app! Are you planning a CLI? I particularly like so (https://github.com/samtay/so)


FEEDBACK

Cool. Conclusion is that I need to get better at writing queries:

I wanted an overview of Python APIs to choose from to play sound files, and importantly, I wanted to know how / if each API offered a non-blocking parameter. In my use-case I am playing sounds, after detecting some elements during video processing, and I find it blocks my realtime video stream UI.

My experience refining my query - I started with one query, and settled on an increased redundancy of my query:

[NOTE: I typo'd asynchronously as "asynchonously", unintentionally]

FIRST = how do i asynchonously play sounds in python (https://phind.com/search?q=how+do+i+asynchonously+play+sound...)

Result from PHIND for FIRST was promising enough for me to refine my query. I felt like the beginning portion of the answer it provided was useful. And I felt like the subsequent portion was not. It listed various Python API for playing sounds. And only for the first did it supply concurrency details.

SECOND TRY = how do i asynchonously play sounds in python, and what are the parameters for synchronous or blocking playback (https://phind.com/search?q=how+do+i+asynchonously+play+sound...)

Result for the SECOND was more loquacious, however it supplied more detail, and satisfyingly more concurrency configuration instructions for e.g. the "playsound" Python API.

So overall, kudos! And, I will use this product in the future.


Thanks for the feedback! We just shipped an update a few minutes ago that should give more useful examples all while splitting up long chunks of text into more readable paragraphs.


Sure thing. Yes I do see improved para-formatting. Best luck iterating!


Ah, time to ask my favorite question to vet new AIs:

> In TypeScript, how can I have a component restrict the types of its children to only certain types of components? I would like a static type error.

The correct answer is "this is impossible". Every AI I've tried this on hallucinates some nonsense code that doesn't actually work. Sadly Phind is the same. It says "here's an example of how to do this" with a code sample, and then links to a StackOverflow post saying it's not possible :)


I don’t know why anyone would use it as a search engine. It works fine as an assistant which can save you time but needs fact checking, like a human assistent needs as well. Maybe they manage the search engine part as well but a good search engine (like google used to be) will be hard to replace; it is much faster and more accurate (or rather; it doesn’t make up stuff even if it gives you fake results). I think it could work fine here in just providing a guess to a solution and links it found. It is often quite on point but needs fact checking.

I know quite a lot of people, if not allowed a google search and only get vscode to try something, that would take a stab at your typescript question and not be able to tell you that it is impossible.

Asking gpt to be a search engine is the same as asking a human currently really: I vaguely remember dates from WOII history, so when you ask me in a pub quiz, I will confidently tell you something and then where to find or look up the actual answer which might be slightly or completely different, depending on if I actually matched the right event with the right date and if I remember the day and month or not.


> I don’t know why anyone would use it as a search engine.

What are you referring to here? The title of this submission says "Phind.com - Generative AI search engine".


So it is no better than ChatGPT with its bullshit generation. Confidently giving the wrong answer and output, then linking to StackOverflow with an answer saying it is not possible at all.

Once again proves that it is more untrustworthy than a normal search engine like Google. This AI hype of LLMs is truly going to subside very quickly given that the promises made by what ChatGPT, Bing AI, Bard and now Phind are collapsing right in front of us when tested.

The truth is, almost no-one here would trust their output, and now needs a extra review by a human for each output. Henceforth, there is no point in using it as a search engine or to generate anything factual given it is going to hallucinate nonsense like that and can be easily tricked to output incorrect answers, making it very unreliable.


what do you mean by component in that question?


I mean a React component.


Tangentially about web-based generative AIs as products, I sense an opportunity to innovate around the pain of their non-determinism, perhaps an enhancement to Web Browser "History" functionality.

Q: Is this general usability issue being discussed more, due to the growth of new product teams working with generative AIs?

Some discussion: I am drawn to wonder if there is an innate value to include permalinks (or semi-permanent) ... to save each query's results. Or perhaps do something better which I've not thought of yet.

The issue in more detail, (I'm naive on the subject so forgive the redundancy:) Results aren't highly deterministic - randomness and date-sensitive models seem to generate, probabilistically, different results for the same query. Especially for Generative AI products that exist as webapps, where hitting 'reload' could provide inferior results and simultaneously eliminates superior prior results.

Non-determinism is a 'surprise' quality which can enhance and degrade the value of a generative AI tool, in my experience when using this category of tools. It's fun (endorphin rush) to spin the Roulette wheel and query again. And it's painful when the prior results ranked More Useful in one's mind.

Ideally for usability's sake, these products would include some affordance to the user, to manage that endorphin / pain cycle.

[Note, A complication, here with PHIND being the context. PHIND's HTML renderer itself is being iterated on .. this is a product-launch after all. So, results also look different not for data/algorithm reasons.]

This could be realized as a web-browser feature - an enhanced History. The current "History" model of browsers is a trivial response to the REQUEST/RESPONSE HTTP mode. The HTTP spec (last time i read it was in 2005) leaned towards everything-is-deterministic except for time.

Example: I input this query https://phind.com/search?q=linq+query+to+filter+every+other+... and it listed one code snippet. I re-queried and received a different snippet. Honestly, I like both results. As of this moment I'm writing, I can only generate one of the two results.


Perplexity creates permalinks for your queries. Here's an example: https://www.perplexity.ai/?s=u&uuid=605b2823-3067-4cd1-aacf-...


Neat. I like the safe and stable feeling of permanence from a permalink, here.

Building on this, I see now permalinks could be challenging to integrate "perfectly" to PHIND's "Ask a followup question" value-add feature, because that feature depends upon the original query's model to provide "perfectly" (my word) useful "followup" results. And a permalink's model should be expected to quickly be stale, and quickly discarded, at this time.

I can conclude then, there is less value to permalinks at an app level, since the value-add features of the e.g. PHIND webapp may be compromised if they're intended to also work with the permalink data. And perhaps more value would comes from a trivial global, static history at the browser level instead of app.


I asked it what the best build system is for VS Code under Windows and answered with:

> Based on the given context, there is no clear answer to the question "what's the best build system for Visual Studio Code on Windows". However, there are some relevant information that can be helpful in understanding the build system options available for Windows and Visual Studio Code.

> [... basic rundown on build systems and a list of the common suspects ...]

I'm impressed.


In the footer is says "made with [2764]/love in San Francisco", but when I query "what is Phand made with" it doesn't mention [2764], It doesn't know the answer, even though the answer is right there on the page.

I prefer search engines to do their job and provide quality links, not lengthy passages about the subject I'm searching for. For simple answers it's fine, but search engines pretending to know all about a subject, is cringey. Scraping the web and mashing together what it finds.

Each website has its own way to present things, and in what order. When hoovered up, taken elsewhere and squeezed out through AI's front end, it comes out a tangled mess.

Just now I needed a refresher on the HTML table scope attribute, so I used Phind to look up html table scope. It returned a wall of text about tables. Not inaccurate, but a wall of text. It was easier to click on the w3schools links where it's nicely laid out with clear examples of scope, with clear information about related attributes and use.


Very well done. Did a couple of "How to" questions to generate R scripts for basic purposes (e.g. scraping a webpage) and responses were not only descriptive but also covered other nuances like captcha, javascript execution blocking, parallelizing slow responding sites etc. Have not tried with more nuanced advanced questions but looks very promising so far!


Out of curiosity, what suggestions did you get for captchas and slow sites?


This is really great. I could see myself using this all the time! One minor critical feedback I have is that on dark mode it is very difficult to see the linked sources on the natural language explanation side. The grey is very dark and a bit more contrast would help a lot here in usability. Congrats on the launch!


Thank you! And yes, the linked sources in dark mode are a known issue and will be fixed by EOD.


Update: Now fixed!


Hello was already pretty good, but when ChatGPT came out, I completely stopped using it. It’s great to see this next iteration!

Naturally, the first thing I searched for was something I’ve put on the internet that is not well indexed by Google.

When I search “how to find a lobby with rivet.gg” (that’s our most basic functionality), it doesn’t come up with an answer. However, it does spit back a descent summary of relevant features we provide.

What’s odd – it always continues on to talk about an unrelated company. The first time, it started talking about top.gg as a way to add Fortnite-style bots to your game. (They’re actually a Discord bot directory.) The second time, it mentioned a completely random Reddit called Guilty Gear Strive.

Can you elaborate on how it finds these related topics?


The model is designed to mention all distinct relevant entities for a given search topic. In this case, it thought that the unrelated company was relevant to the search -- but perhaps it was not.

In the case of “how to find a lobby with rivet.gg”, it finds your docs and looks at https://docs.rivet.gg/docs/concepts/matchmaker/ but fails to extract how to put a player in a lobby. We'll take a look at this case in more detail. Our goal is to be great at parsing most/all docs.


This is better than I thought it would be. If you're skeptical, give it a try.

I am curious about whether it hallucinates api methods that don't exist, like ChatGPT does. I haven't seen that yet but the underlying concept of an LLM is the same.


It hallucinates less than ChatGPT :)


My simple test worked fine and correctly explained how to use smart pointers in c++.

There is a small accessibility problem with the way it interacts with screen readers. it speaks duplicates of the text for some reason. I am using NVDA.


Good job! For the query that I had tried, it generated lot of text. It would be good if you can

(a.) Generate a short summary to start with & expand using something like `show more` (b.) Include reference images if you can.


What was the query?


What is Reverse ETL?

A very generic query I agree.

Response was

Reverse ETL is a process that involves copying data from a data warehouse to operational tools such as SaaS tools used for growth, marketing, sales, and support. Traditional ETL involves replicating data from a data source to a data warehouse. Reverse ETL is a relatively new category in the data space that enables real-time decision-making, increased collaboration between departments, and streamlined workflows. Reverse ETL allows different departments like product, marketing, sales, engineering, and customer support to be more self-sufficient and effective by giving them direct access to the data they need within the tools they use. Here are some key differences between ETL and Reverse ETL:

- ETL is a one-way door, whereas Reverse ETL is a two-way door. - ETL pipelines are used to read and write data from operational systems to a data warehouse, whereas Reverse ETL is all about syncing the data in your warehouse to your downstream business tools. - ETL is typically used for batch-oriented data integration, while Reverse ETL is usually used for real-time data activation. - ETL focuses on integrating data from multiple sources, and Reverse ETL is focused on making data available for consumption.

Reverse ETL requires writing reverse SQL, which can be challenging. Reverse ETL tools provide a visual interface to choose which query output columns are used to populate standard and custom fields in your operational system. Reverse ETL tools are generally more powerful and cost-effective than iPaaS and open-source solutions. Reverse ETL enables any team, from sales to product, to access the data they need within the systems they use. Reverse ETL can help business users get the data they need without relying on engineering resources, making it easier for analysts to focus on high-level tasks. Reverse ETL can also improve the quality of your data by catching errors and inconsistencies in near-real-time and fixing them before they cause problems. Reverse ETL is a compelling process with many benefits, but it does have limitations. It does not provide an interface to activate your data into personalized, cross-channel customer experiences. This gap is where a customer data platform (CDP) comes into play. A CDP unifies all your customer data and consolidates it into a single profile view for each customer. Reverse ETL is a relatively new technology that sets businesses up to do more complex operational analytics than they could with BI tools alone. It has been around since 2018, but it didn’t really start trending until 2021. Reverse ETL is a technology for taking cleaned and processed data from the data warehouse and ingesting it back into business applications such as Salesforce, where it can be used for business operations and forecasting.


Also, will it be possible for phind to store my queries & generated responses if I am a logged in user.

Coz, I am sure the response generated would definitely not be the same if I use same question twice. So, that would help.


Adding search history is on the roadmap!


Gotcha. Thanks for the feedback!


Awesome! I'm curious how you can provide this for free? The biggest challenge for me has been trying to figure out a business model + need that make sense when an API call costs $x > 0.


We have venture funding (YC S22 batch), so we're eating the cost per search while we find product-market fit. However, there will always be a free version of Phind. For monetization, we are thinking about ads, a ChatGPT-style subscription model, or a combination of the two.


I know this is kind of out in left field, but some people also mentioned query result history. I've been using phind since it was in beta as sayhello and encountered similar a faux pas where submitting feedback sent me to an plaintext error page. Going back and resubmitting the query produced a result that didn't include the important information in the original result. It would be helpful to have search history, but furthermore (and the reason for writing this) is an idea that's been floating around in my head about git-tree esque search histories in bash. Though it's currently outside the range of my expertise. While reading the comments of this thread I had an idea for a similiar feature, something i would probably pay for an recommend.

The feature relates to a problem I've encountered as an active intermediate developer with managing the multidunious and varied queries that i might do both getting up to speed and solving problems in-the-wild. I find that what i learn and use doesn't stick right away, so rather than making the same query (and in this case sometimes getting different results) resorted to keeping 3 notebooks for each subject: a technical reference, a working notebook, and a learning log. That's a lot of notebooks!

I mention this because knowledge management and effective learning go hand in hand. And learning something you didn't know seems to be the problem domain of ai search for developers.

Organizing query results thematically by learning trees would be a gargantuan undertaking, and probably far outside the scope of what is already an excellent service. Just putting that out there.

Thanks!


Thanks for being forthright. How did you test the MVP before you joined YC and had venture funding? Did you pay from your pockets


Yep, my co-founder and I were both in college pre-YC and we bootstrapped everything.


That is seriously impressive! Good work so far and good luck for the future!

Personally I hope it ends up either freemium or with a reasonable price ideally token based. I very much want to pay to incentivize development of good products but I already subscribe to enough things which is why I hope for more token based services.

(Of course if something is good enough and the pricing is reasonable there are sometimes room for exceptions. Kagi and Telegram are the latest ones for me and only Kagi is "safe", Telegram is mostly as a way to express my gratitude.)


Thank you! Kudos :)


This is great tech, and I’m really impressed with the quality of the results. I particularly like how the model declines to answer when the context doesn’t answer the question.

One note, though: I’m finding the (mobile) UI very chaotic. The vertical spacing between blocks of text is irregular. And when submitting a follow-up question, it appears that nothing is happening - when, in fact, a new answer is being generated down below the links. I think revisiting some of the UI design could showcase the tech better.


Thanks for the feedback! We definitely have some work to do on our mobile UI. We'll work on making the layout feel more natural, and we'll have the page automatically scroll to the followup results.


The hover/click events kill mobile imo. Just trying to scroll the page gets very chaotic with stuff popping up, new tabs opening...


It doesn't let you scroll without stuff popping up? What device/browser are you using?


It looks phind queues a query for its machine learning models. I submit the following query twice. For the first time, phind gave Google-like answers that talked about only Guava. For the second time, though, Phind gave me good answers on using popular Go libraries with sample code.

https://phind.com/search?q=How+do+I+use+a+cache+that+is+like...


Both answers were run through the LLM. Answer variability is caused by different web links being returned and the way we sample answers from the LLM. We're working on making it more consistent.


Consistency has to be a tough problem to solve for a service like this, since randomness in the choice of each token is part of the magic sauce that makes LLMs work.


It is definitely a hard problem. There are ways to ensure consistency, such as using beam search decoding, which is deterministic. But that comes with other tradeoffs regarding answer quality.


I prefer less consistency, it allows me to keep probing until I get the style of answer I'm after.


The generative AI piece in these kinds of solutions is just the last step which is to take the list of nearest neighbour sentences or paragraphs and generate an answer from that set.

So I think these class of search engines should actually be called something other than generative AI search engines.

Maybe generative AI powered search summaries?


It's not quite that simple. The model occasionally inserts code snippets that it generates itself if it can't find one good enough in the provided web context.


Interesting.

I asked it to write an essay on a subject I'm interested in, and an authority on. The essay, without citation, quoted whole sentences from both me, and wikipedia, verbatim. This seems like a bad thing. Certainly you can't use articles it writes if you don't know if it's plagiarizing.


I’m really impressed! I’ve added it to my home screen. Thanks for the PWA! I ran this query: https://phind.com/search?q=how+do+i+run+airflow+locally

And it all checked out. I think I’ll start using it more.


I'm pronouncing it Finned. By the way in your rating component "was this answer better than google" I think you need a - for equal to google.

Reasoning, well my results were equal to google. Also your target audience are technical people, they can handle a more complicate rating process.


When asked « what is the best time to go skiing? », Phind fixates on Colorado for some reason, then proceeds to delivering a huge blurb about skiing in Colorado ending with « in the end, the best time to go skiing in Colorado is a matter of personal preference ». Well, that was useful.


On the one hand, you’re right. That’s not a useful answer.

On the other hand, they did state it’s a developer focused search product for technical & factual questions. They’re aiming to make a bot that doesn’t provide opinions, or long convoluted conversations. On that basis your query isn’t a great representation of that.

But what should the answer be anyway? Winter? When there’s snow? When you have a break from work and enough money for a lift pass? When you’re feeling strong and healthy? Should the bot ask you clarifying questions to determine that?

If you asked a person this question they’d either ask you clarifying questions regarding what you actually want to know, or give you a vague answer based on where and when they like to go skiing.


I missed the fact that the engine was dev-oriented. Thank you for pointing that out. My question was too general indeed.


Thanks for the feedback. We'll work on improving.

Running this question again, I got:

> For example, ski resorts at Lake Tahoe usually open after Thanksgiving and close in late April, with February offering the best skiing conditions. In Colorado, the ski season generally runs from mid-November through mid-April, with February being the best time to ski due to the deepest base depth of snow on the mountains and plenty of powder still pouring in. However, early snowfall can bring early openings, and the weather can be unpredictable. In Park City, Utah, the best time to ski is from December to March, with January being the busiest month due to the Sundance Film Festival.


Well, developers can ski of course. but I think the search engine is focussed on software dev


Indeed I had missed the fact that it was dev oriented. My bad.


https://phind.com/search?q=what+is+the+architecture+of+react...

this currently returns a wall of text - 545 words for first paragraph. any way to chunk it up? or get a bullet point version?


You can say "give me bullet points" as a followup question. But we are working on avoiding generating more readable "chunks" of text as opposed to large paragraphs.


Wow, I am impressed with the power of Phind! I had been struggling to find a book on writing a text editor to learn design patterns with C++, but Phind helped me find it within just 5 minutes. Thank you so much to the Phind author for creating such a useful tool!


> Warning iconYour browser is out of date! Update your browser to view this website correctly. More Information.

I hate this so much, I have firefox nightly 107, how is everyone flagging me as out of date ... is it a bad library that you are all using?


If you exact-search that message on google, it appears to be generated by Cloudflare's challenge.

I found someone complaining about a similar thing except on WhatsApp Web which also tells them to update Firefox even though they're on FF 107.

Maybe FF changed something used in common feature-detection checks. Perhaps it's fixed in FF 108+.


it actually links to this https://developers.cloudflare.com/fundamentals/get-started/c...

I think this is probably something that only cloudflare can fix


I'd guess it's just the sad-but-inevitable result of Firefox market share dropping so far. Remember back when every website would tell you your browser was "out of date" unless your user-agent matched IE6's?

For everyone not on Firefox, this is one reason why we kept saying a browser monoculture is bad.


I don't think it's inevitable, there a lot of small vocal groups that achieve their goals ...


Congrats on the launch! Can you share more information about the intended business model?


Thanks, Vlad. There will always be a free version of Phind. We are thinking about either ads, a ChatGPT-style subscription model, or a combination of the two.


Does that voting "better than Google" is used for further model learning? if so, is there any protection for manipulation? I could imagine that someone could use that to convince model to promote one product over another


It is used for improvement, but there's a filtering step built in to help prevent abuse.


This could not answer the question "how to draw a triangle on a piece of paper using a typical PC monitor and pen".

My intended answer is that you use the monitor as a ruler.

ChatGPT arrived at that answer after a few tries. This couldn't do it.


Phind is designed to ground itself in what it finds on the web. It occasionally incorporates its own knowledge for code snippet generation/debugging but it is not designed to answer riddles. Phind hallucinates less than ChatGPT at the expense of being less creative at these types of questions.


This is fantastic! Thank you


Great summary result for what I was looking for! I'll be using this!



Thanks! Anything we can do better?


The first question I asked did not end well : « why is computer vision so hard? »

Phind gets the meaning of computer vision completely wrong.

Google got the meaning right, but answers with a bunch of links of dubious quality.


Would you mind sharing what exactly it got wrong and how we can do better?


Computer vision is a specific domain in the tech world. Google it and you will see.


Often times it doesn't include the code in the first response even if I mentioned it. Perhaps have a checkbox to always include the code similar to "Hide Links"?


Interesting. Could you give an example, please? Adding "give me an example" as a followup should usually do a trick in those cases.


For a developer centric tool I expect it to gravitate towards showing the code.

Here is a random example: https://phind.com/search?q=how+to+list+BLE+devices+on+IOS+us...

I quickly got tired of asking for code examples in the follow up as it's an extra roundtrip.


Agreed. We're trying to show examples by default.


Nice work! My feedback would be: can you make sure it replies in paragraphs, instead of one giant block of text. (FYI, I asked "how to center a div")

Good luck


That update's coming later tonight!


Update: now fixed!


Is it using the Bing Search API under the hood?


Yep, we do use the Bing API.


Can someone here explain how a solo developer can use bing API. It seems the cost is not cheap, even for basic plan. "1,000 transactions free per month for all markets"

https://www.microsoft.com/en-us/bing/apis/pricing

Thats like 30-searches per day (including any tweaking). How can a solo developer make an MVP based on this?


So this project can be summarized in a single HTTP request that takes a prompt, puts some bing results in it, and shows it to the user?


No, we read the websites returned by the web results, feed that into our large language models, and generate an answer based on that.


So this is not based on OpenAI? You have your own language models?


We use a combination of our own language models + OpenAI.


Then why it is saying "Was this answer better than Google?"


Google is still what most people use and our biggest hurdle is getting people to consider using something else. So that's what we compare ourselves to.

Interestingly, the very existence of the new Bing does us a favor in this regard -- it warms people up to the idea of using something other than Google, even if it's just for a subset of searches.


Or DDG?


DDG is using Bing API itself


Good point. With that in mind, e.g. WebChatGPT using DDG may be a matter of working around the Bing API costs.


nice, looks great, for few questions I tried it sometimes drifted into unrelated details after responding original question. But at that point I'm already satisfied and maybe giving some additional info isn't bad either. great product, for sure better than digging through all copycats of stack overflow and GitHub in Google results


Yeah, we're trying to strike a balance between being concise and completely answering complex questions. Answers are deliberately long at the moment as we would rather completely answer every question than optimize prematurely by leaving out important details on occasion.

We're thinking about ways to enhance readability by breaking the core of the answer into its own paragraph.


This is good. I like getting a code snippet to read to get an example of how to structure something.


the latency is really killer for this kind of usecase.. any plans to figure out how to cut it down?


the answer should start generating almost immediately like with ChatGPT. right now our infrastructure is being hugged a bit, and we are scaling it up.


This is really cool! Are you using OpenAI API under the hood or have you trained your own model?


We use both our own models and OpenAI.


This is really great. What model are you guys using? Do share your process if you're so inclined.

Great work


We're using a combination of our own models and OpenAI models. For our own models, we've found success with Flan-T5 and UL2 which we've further trained on our own data.


Looks like it's hugged to death. It has good prompt injection attack blocking :)


Very cool ! Did you have to train your own model, if yes how much did it cost ?


I’m impressed enough to subscribe at say <= 5 usd/month.


Anyone managed to reverse engineer the original prompt?


when I type in follow up question and them click in autocompleted question it uses it as main question instead of follow up


ah yes that's a bug that will be fixed shortly.


thanks one thing that I could suggest is that on mobile when links are visible, submitting follow up question leaves visible screen with links (response is places below them)


yep, we're working on automatically scrolling you down to the followup as well.


i love it! i'm curious how you guys are webscraping so fast? Do you guys use Bing WebCache?


No web cache. Our servers just have high bandwidth, I guess!


mind blown, it was so much more useful than the pages google finds.


Very impressed overall. The main problem I have with it is that it adds a lot of unnecessary stuff to the answers, instead of just giving a concise reply. I find myself having to skim through many paragraphs to get to the point.

In many cases it would be nice if it had a TLDR at the top that's a single sentence, and all the details below.


Great stuff! Very helpful


is there a reason it only shows 5 URLs now? It used to show more


It seemed as though people weren't looking at the bottom 5 URLs when we were showing 10. And it also created a bunch of space between followup questions. Some users reached out to us and requested we return to 10, so we are going to do that soon. We're going to add pagination, similar to how Google shows multiple pages of results.


Hmmm I'm sure the tech is modern but the name... evokes thoughts of throwback to 2000s "ph"at beats, gr"ind"r, and trying to be trendy like appending "ly" to a noun for the company name ( https://thenextweb.com/news/whats-startups-name-trend-misspe... ).

Maybe it's just me, or maybe that what was being aimed for?


We liked the name "Phind" because it was playful and cheeky. And it is a bit of a throwback style-wise.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: