John Bergvall 5629ca7d96
Copy SearchQuery model with updated attribute due to Config.frozen=True (#806)
Fixes the following TypeError:

api_server_1     |   File "/usr/local/lib/python3.11/site-packages/anyio/to_thread.py", line 33, in run_sync
api_server_1     |     return await get_asynclib().run_sync_in_worker_thread(
api_server_1     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
api_server_1     |   File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 877, in run_sync_in_worker_thread
api_server_1     |     return await future
api_server_1     |            ^^^^^^^^^^^^
api_server_1     |   File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 807, in run
api_server_1     |     result = context.run(func, *args)
api_server_1     |              ^^^^^^^^^^^^^^^^^^^^^^^^
api_server_1     |   File "/usr/local/lib/python3.11/site-packages/starlette/concurrency.py", line 53, in _next
api_server_1     |     return next(iterator)
api_server_1     |            ^^^^^^^^^^^^^^
api_server_1     |   File "/app/danswer/utils/timing.py", line 47, in wrapped_func
api_server_1     |     value = next(gen)
api_server_1     |             ^^^^^^^^^
api_server_1     |   File "/app/danswer/direct_qa/answer_question.py", line 243, in answer_qa_query_stream
api_server_1     |     top_chunks = cast(list[InferenceChunk], next(search_generator))
api_server_1     |                                             ^^^^^^^^^^^^^^^^^^^^^^
api_server_1     |   File "/app/danswer/search/search_runner.py", line 469, in full_chunk_search_generator
api_server_1     |     retrieved_chunks = retrieve_chunks(
api_server_1     |                        ^^^^^^^^^^^^^^^^
api_server_1     |   File "/app/danswer/search/search_runner.py", line 353, in retrieve_chunks
api_server_1     |     q_copy.query = rephrase
api_server_1     |     ^^^^^^^^^^^^
api_server_1     |   File "pydantic/main.py", line 359, in pydantic.main.BaseModel.__setattr__
api_server_1     | TypeError: "SearchQuery" is immutable and does not support item assignment
2023-12-03 13:47:11 -08:00
2023-11-07 16:55:10 -08:00

OpenSource Enterprise Question-Answering

Documentation Slack Discord License

Danswer allows you to ask natural language questions against internal documents and get back reliable answers backed by quotes and references from the source material so that you can always trust what you get back. You can connect to a number of common tools such as Slack, GitHub, Confluence, amongst others.

Usage

Danswer provides a fully-featured web UI:

https://github.com/danswer-ai/danswer/assets/25087905/619607a1-4ad2-41a0-9728-351752acc26e

Or, if you prefer, you can plug Danswer into your existing Slack workflows (more integrations to come 😁):

https://github.com/danswer-ai/danswer/assets/25087905/3e19739b-d178-4371-9a38-011430bdec1b

For more details on the admin controls, check out our Full Video Demo!

Deployment

Danswer can easily be tested locally or deployed on a virtual machine with a single docker compose command. Checkout our docs to learn more.

We also have built-in support for deployment on Kubernetes. Files for that can be found here.

💃 Features

  • Direct QA powered by Generative AI models with answers backed by quotes and source links.
  • Intelligent Document Retrieval (Hybrid Search + Reranking) using the latest NLP models.
  • Automatic time/source filter extraction from natural language + custom model to identify user intent.
  • User authentication and document level access management.
  • Support for LLMs of your choice (GPT-4, Llama2, Orca, etc.)
  • Management Dashboards to manage connectors and set up features such as live update fetching.
  • One line Docker Compose (or Kubernetes) deployment to host Danswer anywhere.

🔌 Connectors

Efficiently pulls the latest changes from:

  • Slack
  • GitHub
  • Google Drive
  • Confluence
  • Jira
  • Notion
  • Gong
  • Slab
  • Linear
  • Productboard
  • Guru
  • Zulip
  • Bookstack
  • Document360
  • Request Tracker
  • Hubspot
  • Local Files
  • Websites
  • With more to come...

🚧 Roadmap

  • Chat/Conversation support.
  • Organizational understanding.
  • Code Search
  • Structured Query Languages (SQL, Excel formulas, etc.)
  • Ability to locate and suggest experts from your team.

💡 Contributing

Looking to contribute? Please check out the Contribution Guide for more details.

Description
Gen-AI Chat for Teams - Think ChatGPT if it had access to your team's unique knowledge.
Readme MIT 95 MiB
Languages
Python 62%
TypeScript 33.6%
JavaScript 2.4%
HTML 0.9%
CSS 0.8%
Other 0.2%