You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A chat interface using open source models, eg OpenAssistant or Llama. It is a SvelteKit app and it powers the [HuggingChat app on hf.co/chat](https://huggingface.co/chat).
18
18
19
19
0.[No Setup Deploy](#no-setup-deploy)
20
20
1.[Setup](#setup)
21
21
2.[Launch](#launch)
22
-
3.[Extra parameters](#extra-parameters)
23
-
4.[Deploying to a HF Space](#deploying-to-a-hf-space)
24
-
5.[Building](#building)
22
+
3.[Web Search](#web-search)
23
+
4.[Extra parameters](#extra-parameters)
24
+
5.[Deploying to a HF Space](#deploying-to-a-hf-space)
25
+
6.[Building](#building)
25
26
26
27
## No Setup Deploy
27
28
@@ -70,6 +71,16 @@ npm install
70
71
npm run dev
71
72
```
72
73
74
+
## Web Search
75
+
76
+
Chat UI features a powerful Web Search feature. It works by:
77
+
78
+
1. Generating an appropriate Google query from the user prompt.
79
+
2. Performing Google search and extracting content from webpages.
80
+
3. Creating embeddings from texts using [transformers.js](https://huggingface.co/docs/transformers.js). Specifically, using [Xenova/e5-small-v2](https://huggingface.co/Xenova/e5-small-v2) model.
81
+
4. From these embeddings, find the ones that are closest to the user query using vector similarity search. Specifically, we use `inner product` distance.
82
+
5. Get the corresponding texts to those closest embeddings and perform [Retrieval-Augmented Generation](https://huggingface.co/papers/2005.11401) (i.e. expand user prompt by adding those texts so that a LLM can use this information).
83
+
73
84
## Extra parameters
74
85
75
86
### OpenID connect
@@ -155,7 +166,7 @@ You can change things like the parameters, or customize the preprompt to better
155
166
156
167
By default the prompt is constructed using `userMessageToken`, `assistantMessageToken`, `userMessageEndToken`, `assistantMessageEndToken`, `preprompt` parameters and a series of default templates.
157
168
158
-
However, these templates can be modified by setting the `chatPromptTemplate`, `webSearchSummaryPromptTemplate`, and `webSearchQueryPromptTemplate` parameters. Note that if WebSearch is not enabled, only `chatPromptTemplate` needs to be set. The template language is https://handlebarsjs.com. The templates have access to the model's prompt parameters (`preprompt`, etc.). However, if the templates are specified it is recommended to inline the prompt parameters, as using the references (`{{preprompt}}`) is deprecated.
169
+
However, these templates can be modified by setting the `chatPromptTemplate` and `webSearchQueryPromptTemplate` parameters. Note that if WebSearch is not enabled, only `chatPromptTemplate` needs to be set. The template language is https://handlebarsjs.com. The templates have access to the model's prompt parameters (`preprompt`, etc.). However, if the templates are specified it is recommended to inline the prompt parameters, as using the references (`{{preprompt}}`) is deprecated.
159
170
160
171
For example:
161
172
@@ -187,33 +198,14 @@ The following is the default `chatPromptTemplate`, although newlines and indenti
187
198
188
199
When performing a websearch, the search query is constructed using the `webSearchQueryPromptTemplate` template. It is recommended that that the prompt instructs the chat model to only return a few keywords.
189
200
190
-
The following is the default `webSearchQueryPromptTemplate`. Note that not all models supports consecutive user-messages which this template uses.
201
+
The following is the default `webSearchQueryPromptTemplate`.
191
202
192
203
```
193
204
{{userMessageToken}}
194
-
The following messages were written by a user, trying to answer a question.
205
+
My question is: {{message.content}}.
206
+
Based on the conversation history (my previous questions are: {{previousMessages}}), give me an appropriate query to answer my question for google search. You should not say more than query. You should not say any words except the query. For the context, today is {{currentDate}}
What plain-text english sentence would you input into Google to answer the last question? Answer with a short (10 words max) simple sentence.
201
-
{{userMessageEndToken}}
202
-
{{assistantMessageToken}}Query:
203
-
```
204
-
205
-
**webSearchSummaryPromptTemplate**
206
-
207
-
The search-engine response (`answer`) is summarized using the following prompt template. However, when `HF_ACCESS_TOKEN` is provided, a dedicated summary model is used instead. Additionally, the model's `query` response to `webSearchQueryPromptTemplate` is also available to this template.
208
-
209
-
The following is the default `webSearchSummaryPromptTemplate`. Note that not all models supports consecutive user-messages which this template uses.
0 commit comments