Farfalle is an open-source AI-powered search engine project that integrates local and cloud-based language models to provide advanced search capabilities. The project is spearheaded by Rashad and hosted on GitHub under the repository rashadphz/farfalle. It is currently in an active development phase, showing rapid progression with frequent updates and improvements. The project has attracted considerable attention with 809 stars and 65 forks, indicating a strong community interest.
Recent activities indicate a robust development pace primarily driven by Rashad with occasional contributions from Alok Saboo. Key areas of focus include:
docker-compose.dev.yaml
for better development environment handling.~~~
Farfalle is an open-source AI-powered search engine that leverages both local and cloud-based language models to provide advanced search capabilities. Managed by Rashad and hosted on GitHub, the project is in a vibrant phase of development, characterized by frequent updates and a growing community interest evidenced by 809 stars and 65 forks. The roadmap highlights ambitious plans for expansion and integration with other technologies.
Recent activities show a high level of engagement from the team, particularly from Rashad, with contributions from Alok Saboo focusing on infrastructure improvements.
The collaboration primarily revolves around improving operational stability and expanding functionality. The issues and PRs indicate a focus on enhancing language support, integrating with additional search functionalities, and refining the user experience.
Several risks need attention to ensure the project's sustainable growth:
Farfalle is a promising project with a proactive development approach, focusing on leveraging cutting-edge AI technologies to enhance search capabilities. While the project benefits from active community engagement and robust technical management, it faces challenges related to external dependencies and scalability. Addressing these risks strategically will be crucial for its long-term success.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
rashad | 1 | 1/1/0 | 112 | 100 | 31392 | |
Alok Saboo | 1 | 1/1/0 | 1 | 2 | 9 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
rashad | 1 | 1/1/0 | 112 | 100 | 31392 | |
Alok Saboo | 1 | 1/1/0 | 1 | 2 | 9 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
Farfalle is an open-source AI-powered search engine designed to function similarly to Perplexity. It allows users to run local language models (LLMs) such as llama3, gemma, and mistral or use cloud models like Groq/Llama3 and OpenAI/gpt4-o. The project is hosted on GitHub under the repository rashadphz/farfalle and is maintained by Rashad, who is also active on Twitter. The project is currently in an active development phase, with frequent updates and improvements being made. It has garnered significant interest with 809 stars and 65 forks. The roadmap indicates ongoing efforts to integrate with LiteLLM and add support for searxng to eliminate external dependencies.
Rashad (rashadphz)
Alok Saboo (arsaboo)
Merge branch 'main' of github.com:rashadphz/farfalle by Rashad
custom-setup-instructions.md
, docker-compose.dev.yaml
custom-setup-instructions.md
, modified 2 lines in docker-compose.dev.yaml
.Fixed rate limit bug by Rashad
src/backend/main.py
Chore: Update docker-compose.dev.yaml for automatic container restart and added instructions for allowing access on the entire network (#11) by Alok Saboo
custom-setup-instructions.md
, docker-compose.dev.yaml
custom-setup-instructions.md
, modified 2 lines in docker-compose.dev.yaml
.Merge pull request #12 from rashadphz/language-support by Rashad
src/backend/prompts.py
Added model and mode state to local storage (needs improvements) by Rashad
src/frontend/src/stores.ts
Update README.md by Rashad
README.md
Ran pre commit hooks by Rashad
chat.py
, constants.py
, main.py
, etc.Pre commit hook by Rashad
.pre-commit-config.yaml
, poetry.lock
, pyproject.toml
.pre-commit-config.yaml
(+17), updated other files (+150).Mini refactor by Rashad
Consistent URL styling by Rashad
src/frontend/src/components/assistant-message.tsx
Better gpt4-o error message by Rashad
src/backend/main.py
Link to self-hosting by Rashad
src/frontend/src/components/assistant-message.tsx
From the recent activities:
High Activity Level: The project is under active development with multiple commits per day primarily by Rashad. This indicates a high level of engagement and rapid iteration on features and fixes.
Collaboration: There is some collaboration with other contributors like Alok Saboo who contributed to improving Docker configurations. However, most of the work is done by Rashad.
Focus Areas: Recent commits indicate a focus on:
Refactoring and Code Quality: Several commits are dedicated to refactoring and running pre-commit hooks which shows an emphasis on maintaining code quality.
Overall, the Farfalle project is progressing rapidly with continuous improvements and active maintenance primarily driven by its main contributor, Rashad.
Recent GitHub issue activity for the project "rashadphz/farfalle" has been high, with multiple issues created and closed within the last few days.
Issue #17: Shows Rate limit exceeded
Issue #15: Local LLM option generates content repeatedly
Issue #14: Feature Request: Search from browser urlbar / search field
Issue #13: Feature Request: Use Jina Reader to retrieve Webpages
Issue #1: Request: Add OPENAI_API_URL
Issue #2: Feature Request: Abstract Search API
Issue #16: v
Issue #12: Added language instruction to prompts
Issue #11: chore: Update docker-compose.dev.yaml for automatic container restart
Issue #10: Feature Request: Use SearXNG
Issue #9: bug report: multi-language support. Could not respond in Chinese and Japanese
Issue #7 & Issue #6: Both related to configuration settings for local models and environment variables, resolved by updating settings or documentation.
Issue #5: Addressed concerns about design similarities with Perplexity.AI, clarified project intentions in README.
Issue #4 & Issue #3: Both related to Docker setup errors, resolved by pushing fixes to the repository.
This detailed analysis highlights critical areas needing attention such as rate limiting, repeated content generation by local LLMs, and multi-language support issues while also noting a strong community interest in feature enhancements related to search functionalities and configuration management.
There are currently no open pull requests for the repository.
Summary: This pull request added language instructions to the prompts, ensuring that the responses match the language of the user's question. This enhancement is crucial for supporting multiple languages, although it notes that smaller models might occasionally struggle with this instruction.
Commits:
Files Changed:
src/backend/prompts.py
(+8, -1)Diff Highlights:
+ Make sure to match the language of the user's question.
...
- Answer (without repeating the question): \
+ Answer (in the language of the user's question): \
...
+ Make sure to match the language of the user's question.
...
+ Make sure to match the language of the user's question.
Comments:
Notable Points:
Summary:
This pull request updated docker-compose.dev.yaml
to include automatic container restart and added instructions for enabling access across the entire network. This is a useful enhancement for development environments, ensuring containers restart automatically and providing clear setup instructions for network access.
Commits: 1. Update docker-compose.dev.yaml for automatic container restart and added instructions for allowing access on the entire network by Alok Saboo (arsaboo) 2. Merge remote-tracking branch 'upstream/main' into docker by Alok Saboo (arsaboo) 3. Move details to custom-setup instructions by Alok Saboo (arsaboo)
Files Changed:
custom-setup-instructions.md
(+5, -0)docker-compose.dev.yaml
(+2, -2)Diff Highlights:
+ If you are accessing Farfalle from a different computer in the network, replace `localhost` with the private IP address of the server Farfalle is running on in the docker-compose.
...
+ restart: always
...
+ restart: always
Comments:
Notable Points:
custom-setup-instructions.md
) to keep the main README simple.Both closed pull requests (#12 and #11) were handled efficiently, with quick reviews and merges. They introduced significant improvements: 1. Enhanced multi-language support in prompts (#12). 2. Improved development setup with automatic container restarts and clear network access instructions (#11).
No notable problems were observed with these pull requests. The repository currently has no open pull requests, indicating an up-to-date state.
.pre-commit-config.yaml
check-yaml
ensures YAML files are correctly formatted.isort
ensures imports are sorted, which improves readability.ruff
and ruff-format
ensure Python code adheres to style guidelines and is formatted correctly.flake8
for linting or black
for consistent formatting across the project.rev
) are periodically updated to incorporate the latest improvements and fixes.docker-compose.dev.yaml
src/backend/main.py
slowapi
, which is crucial for preventing abuse.pydantic
for better handling of environment variables.src/backend/prompts.py
{my_context}
, {my_query}
) effectively for dynamic content insertion.src/frontend/src/stores.ts
MessageStore
, ConfigStore
) are well-defined and separated.src/frontend/src/components/assistant-message.tsx
src/frontend/src/hooks/chat.ts
useMutation
for managing chat-related side effects.Overall, the codebase demonstrates good practices in terms of structure and quality. The recommendations provided aim to enhance maintainability, security, and performance further.