Django Chain views¶
django_chain.views
¶
Views for django-chain: API endpoints for prompt, workflow, user interaction, and LLM execution.
This module provides Django class-based and function-based views for managing prompts, workflows, user interactions, and LLM-powered chat or vector search endpoints.
Typical usage example
urlpatterns = [ path('api/', include('django_chain.urls')), ]
PromptListCreateView
¶
Bases: JSONResponseMixin, ModelListMixin, ModelCreateMixin, View
View for listing and creating Prompt objects.
GET: List all prompts (optionally filter by name or active status). POST: Create a new prompt version.
get(request, *args, **kwargs)
¶
List all prompts, optionally filtered by name or active status.
Parameters:
-
request(HttpRequest) –The HTTP request object.
Returns:
-
JsonResponse(JsonResponse) –List of serialized prompts.
post(request, *args, **kwargs)
¶
Create a new prompt version.
Parameters:
-
request(HttpRequest) –The HTTP request object.
Returns:
-
JsonResponse(JsonResponse) –The created prompt or error message.
apply_list_filters(queryset, request)
¶
Apply filters to the queryset based on request parameters.
Parameters:
-
queryset(QuerySet) –The queryset to filter.
-
request(HttpRequest) –The HTTP request object.
Returns:
-
QuerySet(QuerySet) –The filtered queryset.
PromptDetailView
¶
Bases: JSONResponseMixin, ModelRetrieveMixin, ModelUpdateMixin, ModelDeleteMixin, View
View for retrieving, updating, or deleting a single Prompt object.
GET: Retrieve a prompt by primary key. PUT: Update a prompt's input variables or template. DELETE: Delete a prompt.
get(request, pk, *args, **kwargs)
¶
Retrieve a prompt by primary key.
Parameters:
-
request(HttpRequest) –The HTTP request object.
-
pk(str) –The primary key of the prompt.
Returns:
-
JsonResponse(JsonResponse) –The serialized prompt or error message.
put(request, pk, *args, **kwargs)
¶
Update a prompt's input variables or template.
Parameters:
-
request(HttpRequest) –The HTTP request object.
-
pk(str) –The primary key of the prompt.
Returns:
-
JsonResponse(JsonResponse) –The updated prompt or error message.
delete(request, pk, *args, **kwargs)
¶
Delete a prompt by primary key.
Parameters:
-
request(HttpRequest) –The HTTP request object.
-
pk(str) –The primary key of the prompt.
Returns:
-
JsonResponse(JsonResponse) –Success message or error message.
ExecuteWorkflowView
¶
Bases: JSONResponseMixin, View
Execute a workflow with optional chat session integration.
When session_id is provided, integrates with ChatSession and ChatHistory models to maintain conversation context and log all interactions.
ChatSessionListCreateView
¶
Bases: JSONResponseMixin, ModelListMixin, ModelCreateMixin, View
List all chat sessions or create a new chat session.
GET: Returns list of chat sessions (active by default) POST: Creates a new chat session
ChatSessionDetailView
¶
Bases: JSONResponseMixin, ModelRetrieveMixin, ModelUpdateMixin, ModelDeleteMixin, View
Retrieve, update, or delete a specific chat session.
GET: Returns chat session details with message history PUT/PATCH: Updates chat session DELETE: Archives chat session (soft delete)
ChatHistoryView
¶
Bases: JSONResponseMixin, View
Manage chat history messages within a session.
GET: List messages for a session POST: Add a new message to a session DELETE: Soft delete a message
get_session(session_id, user=None)
¶
Get chat session by session_id.
get(request, session_id, *args, **kwargs)
¶
Get chat history for a session.
post(request, session_id, *args, **kwargs)
¶
Add a new message to the chat history.
delete(request, session_id, message_id, *args, **kwargs)
¶
Soft delete a message.
chat_view(request)
¶
Handle chat requests.
vector_search_view(request)
¶
Handle vector search requests.