# `LangChain.Message.CitationSource`
[🔗](https://github.com/brainlid/langchain/blob/v0.9.3/lib/message/citation_source.ex#L1)

Represents the source of a citation - where the cited information came from.

## Source Types

- `:web` - A URL-based web source (search results, web pages)
- `:document` - A document provided in the request (Anthropic documents,
  OpenAI files)
- `:place` - A geographic location (Google Maps)

# `t`
[🔗](https://github.com/brainlid/langchain/blob/v0.9.3/lib/message/citation_source.ex#L28)

```elixir
@type t() :: %LangChain.Message.CitationSource{
  document_id: term(),
  metadata: term(),
  title: term(),
  type: term(),
  url: term()
}
```

# `new`
[🔗](https://github.com/brainlid/langchain/blob/v0.9.3/lib/message/citation_source.ex#L40)

```elixir
@spec new(map()) :: {:ok, t()} | {:error, Ecto.Changeset.t()}
```

# `new!`
[🔗](https://github.com/brainlid/langchain/blob/v0.9.3/lib/message/citation_source.ex#L47)

```elixir
@spec new!(map()) :: t() | no_return()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
