The first implementation was made because our models had not
tool calling capabilities, and the routing and context management
were quite bad.
Now we can use tools (yay) the whole code is switched to tool
calling.
This first implementation of summarize agent is quite bad, this
will be improved soon.
* 💩(chat) add frontend feature flags
This introduce the use of feature flags:
- flags can be globally enabled or disabled from the backend
- when dynamic, it queries Posthog to get the value
* ✨(chat) add frontend feature flags
disable buttons for feature flags
---------
Co-authored-by: Eléonore Voisin <elevoisin@gmail.com>
To be able to call our Mistral model, few fixes are required:
- "strict" is nor allowed for tools, vLLM will refuse the schema
validation
- response streaming w/o tools works, but not w/ tools...
As we expect to switch from old-school "intent detection" to
automatic tool use, we need to be able to disable streaming.
What we should do next:
- tidy code: the iteration loginc might be in the Agent class
- fake result streaming for end-user. I don't like that, but UX
might prefer.
This allows to use a specific profile for some models.
This is useful in the case of a mistral model behind vLLM.
There is room for improvement to use the real default
and not be forced to pass OpenAI default "supports"...
```
"profile": {
"json_schema_transformer":
"chat.agents.json_schema_converters.MistralVllmJsonSchemaTransformer",
"supports_json_schema_output": true,
"supports_json_object_output": true
}
```
Replace custom Docker Hub authentication with standard, secure,
official GitHub actions for improved security and maintainability.
Uses officially supported actions that follow security best practices
and receive regular updates from GitHub.
Avoid unsecure handling of GitHub secrets.
Thanks to @lebaudantoine
git-lint steps are independant and we would like to have all checks at
once. Using the `if: always()` instruction should ensure all steps
should be run event if the previous fails.
thank @lunika
This introduce a new way to stream events and should ease
migration from v4 to V5 of the Vercel SDK.
WARNING: the v5 implementation is not ready yet, but we need
to merge this before making too much change to the codebase.
This is the first step to allow several models to be available to
the users.
This is not a very good implementation, as it aims to keep the
ability to use django settings for configuration:
- makes it easy to deploy only one model
- allow changes like before in tests
Next step would be to remove the django settings and update
all tests etc.
This adds posthog backend to know whether a feature is enabled
for a user.
More globally, if Posthog is not present feature flags can be
enabled/disabled globally.